গল্পের সময়!
সি, একটি ভাষা হিসাবে, একটি কম্পিউটারের বিমূর্ততা। এটি আপনাকে কম্পিউটারগুলি যা করতে পারে তার শর্তে জিনিসগুলি করার অনুমতি দেয়, তা হ'ল মেমোরিটি হেরফের করা, গণিত করা, জিনিসগুলি প্রিন্ট করা ইত্যাদি in
তবে সি কেবল একটি বিমূর্ততা। এবং শেষ পর্যন্ত, এটা কি থেকে আহরণের এর আপনি পরিষদের ভাষা। এসপিএল হ'ল ভাষা হ'ল সিপিইউ পঠিত ভাষা, এবং যদি আপনি এটি ব্যবহার করেন, আপনি সিপিইউ-এর শর্তে জিনিসগুলি করেন। সিপিইউ কী করে? মূলত, এটি মেমরি থেকে পড়ে, গণিত করে এবং মেমরিতে লেখে। সিপিইউ কেবল স্মৃতিতে সংখ্যায় গণিত করে না। প্রথমত, আপনাকে সিপিইউর ভিতরে মেমোরি থেকে মেমরিতে একটি নম্বর স্থানান্তর করতে হবে যা রেজিস্টার বলে। একবার এই সংখ্যায় আপনার যা যা করা দরকার তা করার পরে, আপনি এটিকে স্বাভাবিক সিস্টেমের মেমোরিতে ফিরিয়ে আনতে পারেন। কেন সিস্টেম মেমরি মোটেই ব্যবহার করবেন? রেজিস্টার সংখ্যা সীমিত। আপনি কেবলমাত্র আধুনিক প্রসেসরগুলিতে প্রায় একশো বাইট পাবেন, এবং পুরানো জনপ্রিয় প্রসেসরগুলি আরও দুর্দান্তভাবে সীমাবদ্ধ ছিল (6502 আপনার বিনামূল্যে ব্যবহারের জন্য 3 8-বিট রেজিস্টার ছিল)। সুতরাং, আপনার গড় গণিত অপারেশন দেখে মনে হচ্ছে:
load first number from memory
load second number from memory
add the two
store answer into memory
এর অনেকটাই ... গণিত নয়। এই লোড এবং স্টোর অপারেশনগুলিতে আপনার প্রক্রিয়াকরণের সময় অর্ধেক সময় নিতে পারে। সি, কম্পিউটারগুলির বিমূর্ততা হিসাবে প্রোগ্রামারকে রেজিস্টারগুলি ব্যবহার এবং জাগল করার উদ্বেগকে মুক্ত করে এবং যেহেতু কম্পিউটারের মধ্যে নম্বর এবং প্রকারেরতমতা থাকে, সি কেবলমাত্র সংকলকটিতে রেজিস্টার বরাদ্দের দায়িত্ব রাখে। একটি ব্যতিক্রম ছাড়া।
আপনি যখন ভেরিয়েবল ঘোষণা করেন register
, আপনি সংকলককে বলছেন "ইয়ো, আমি এই পরিবর্তনশীলটি প্রচুর ব্যবহার করা এবং / বা স্বল্প জীবনযাপনের ইচ্ছা করি I আমি যদি আপনি থাকতাম তবে আমি এটি একটি রেজিস্টারে রাখার চেষ্টা করতাম।" যখন সি স্ট্যান্ডার্ড বলে যে কম্পাইলারগুলিকে আসলে কিছু করতে হবে না, কারণ সি স্ট্যান্ডার্ডটি জানে না আপনি কোন কম্পিউটারের জন্য সংকলন করছেন এবং এটি উপরের 6502 এর মতো হতে পারে, যেখানে কেবলমাত্র পরিচালনা করার জন্য সমস্ত 3 নিবন্ধকের প্রয়োজন হয় , এবং আপনার নম্বর রাখার জন্য কোনও অতিরিক্ত নিবন্ধ নেই। যাইহোক, যখন এটি বলে যে আপনি ঠিকানাটি নিতে পারবেন না, কারণ এটি রেজিস্টারের ঠিকানা নেই। তারা প্রসেসরের হাত। যেহেতু সংকলকটি আপনাকে কোনও ঠিকানা দিতে হবে না এবং যেহেতু এটির কোনও ঠিকানা কখনও পাওয়া যায় না, তাই বেশ কয়েকটি অপ্টিমাইজেশন এখন সংকলকটির জন্য উন্মুক্ত। এটি বলা যেতে পারে, সর্বদা একটি রেজিস্টারে নম্বর রাখতে পারে। এটা না এটি কম্পিউটার মেমরিতে কোথায় সঞ্চিত তা নিয়ে চিন্তা করতে হবে (এটি আবার ফিরে পাওয়ার প্রয়োজনের বাইরে)। এমনকি এটি এটি অন্য ভেরিয়েবলের মধ্যে শোধ করতে পারে, অন্য প্রসেসরের কাছে এটি দিতে পারে, এটি একটি পরিবর্তিত স্থান দিতে পারে ইত্যাদি could
tl; dr: স্বল্প-কালীন ভেরিয়েবলগুলি যা প্রচুর গণিত করে। একবারে খুব বেশি ঘোষণা করবেন না।