বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/সাইজঅফ অপারেটর

উইকিবই থেকে

একটি সি++ প্রোগ্রামিং ভাষায় ব্যবহৃত সাইজিঅফ অপারেটরের ব্যাখ্যা ও উদাহরণ।

সারসংক্ষেপ

[সম্পাদনা]

প্রতিটি ডেটা আইটেম, যেমন ধ্রুবক (constant) এবং ভেরিয়েবল, শুধু একটি ডেটা টাইপ নির্ধারণ করে না, সেই ডেটা টাইপের ভিত্তিতে এটি কম্পিউটারের মেমোরিতে কত বাইট জায়গা নেবে তাও নির্ধারিত হয়। প্রতিটি ডেটা টাইপের আকার ব্যবহৃত কম্পাইলার এবং কম্পিউটারের উপর নির্ভর করে ভিন্ন হতে পারে। এই বৈশিষ্ট্যকে মেশিন নির্ভর (machine dependent) বলা হয়। এছাড়াও, ভাষার সংস্করণ আপডেটের সাথে সাথে কিছু আকারেও পরিবর্তন এসেছে। "সি" ভাষায় 'int' ডেটা টাইপ সাধারণত একটি ইন্টেল উপযুক্ত প্রসেসরে ২ বাইট মেমোরি বরাদ্দ পেত। "সি++" ভাষায় 'int' এর জন্য বরাদ্দ হয় ৪ বাইট।

সি++ এ sizeof(…) নামে একটি অপারেটর আছে যেটি একটি ইউনারি অপারেটর, অর্থাৎ এর মাত্র একটি অপারেন্ড থাকে। অপারেটরটির ডান দিকে অপারেন্ড থাকে এবং যদি এটি একটি ডেটা টাইপ হয়, তবে এটি বন্ধনীর মধ্যে রাখা হয়। অপারেন্ড যেকোনো ডেটা টাইপ হতে পারে (typedef দিয়ে তৈরি ডেটা টাইপসহ)। যদি অপারেন্ডটি একটি আইডেন্টিফায়ার নাম হয়, তবে এটি বন্ধনীর ভিতরে দেওয়ার প্রয়োজন হয় না। এটি ভেরিয়েবল এবং কনস্ট্যান্ট উভয় ধরনের আইডেন্টিফায়ারের জন্য কাজ করে। এই অপারেটরটি বিশেষ কারণ এটি গ্লোবাল স্কোপে কম্পাইল টাইমে এবং লোকাল স্কোপে রান টাইমে এর গণনা সম্পন্ন করে। উদাহরণ:

cout << "The size of an integer is: " << sizeof (int);

কম্পাইলার নির্ধারণ করবে নির্দিষ্ট মেশিনে একটি 'int' কত বাইট জায়গা নেয় এবং মূলত 'sizeof' অপারেটরের জায়গায় সেই মান বসাবে। সাধারণভাবে 'int' এর আকার ৪ বাইট, তাই কোডটি হয়ে যাবে:

cout << "The size of an integer is: " << 4;

যদি আপনি এমন একটি আইডেন্টিফায়ার দেন যেটি একটি ডেটা স্টোরেজ এলাকা (ভেরিয়েবল বা মেমোরি কনস্ট্যান্ট) নির্দেশ করে, তবে কম্পাইলার সেই আইডেন্টিফায়ারের ডেটা টাইপ দেখে আকার নির্ধারণ করে।

    • দ্রষ্টব্য:** আইডেন্টিফায়ারের ক্ষেত্রে সাধারণত বন্ধনী ব্যবহার করা হয় না।

উদাহরণ ১: একটি ভেরিয়েবলের সাথে সাইজঅফ

[সম্পাদনা]
double money;     // ভেরিয়েবল ঘোষণার অংশ
    পর 
cout << "The size of money is: " << sizeof money;

কম্পাইলার 'money' এর ডেটা টাইপ দেখে এর বাইট সাইজ নির্ধারণ করবে। যদি 'money' ডেটা টাইপ হয় 'double', এবং মেশিন অনুযায়ী এর আকার হয় ৮ বাইট, তাহলে কোডটি কার্যত হয়ে যাবে:

cout << "The size of money is: " << 8;

সংজ্ঞাসমূহ

[সম্পাদনা]
সাইজঅফ (sizeof)
একটি অপারেটর যা বলে দেয় একটি ডেটা টাইপ স্টোরেজে কত বাইট স্থান নেয়।

টেমপ্লেট:Subpage navbar