এটি সর্বদা সি 99 এর এক, বিভাগ 6.5.3.4 এ:
যখন এমন অপারেন্ডে প্রয়োগ করা হয় যেখানে টাইপ চর, স্বাক্ষরবিহীন চর, বা স্বাক্ষরিত চর, (বা এর কোনও যোগ্য সংস্করণ) থাকে তবে ফলাফলটি 1 হয়।
সম্পাদনা করুন: আপনার প্রশ্নের অংশ নয়, তবে হার্বিসন এবং স্টিলের তৃতীয় সংস্করণের আগ্রহের জন্য। (প্রাক c99) পি। 148:
একটি স্টোরেজ ইউনিট একটি অক্ষর দ্বারা দখলকৃত স্টোরেজের পরিমাণ হিসাবে নেওয়া হয়; প্রকারের কোনও বস্তুর আকার char
তাই 1।
সম্পাদনা করুন: আপনার আপডেট হওয়া প্রশ্নের উত্তরে হার্বিসন এবং স্টিলের নিম্নলিখিত প্রশ্ন ও উত্তর প্রাসঙ্গিক (আইবিড, ছ। Of এর প্রাক্তন ৪):
কোন ধরণের কী char
-2,147,483,648 থেকে 2,147,483,647 এর মধ্যে মূল্যবোধ উপস্থাপন করতে পারে এমন কোনও সি বাস্তবায়ন অনুমোদিত ? যদি তা হয় তবে sizeof(char)
সেই বাস্তবায়নের অধীনে কী হবে ? প্রকারের ক্ষুদ্রতম ও বৃহত্তম পরিসীমাটি কী হবে int
?
উত্তর (আইবিড, পৃষ্ঠা 382):
এটা তোলে অনুমতি দেওয়া হয় (যদি অযথা) একটি বাস্তবায়ন 32 বিট ব্যবহার করতে টাইপ প্রতিনিধিত্ব করার জন্য char
। বাস্তবায়ন নির্বিশেষে, এর মান
sizeof(char)
সর্বদা 1 হয়।
যদিও এটি কোনও ক্ষেত্রে সুনির্দিষ্টভাবে মোকাবেলা করে না যেখানে বলুন বাইটগুলি 8 বিট এবং char
সেই 4 বাইটগুলির মধ্যে 4 (সত্যিকার অর্থে সি 99 এর সংজ্ঞা দিয়ে অসম্ভব, নীচে দেখুন), এই ঘটনাটি sizeof(char) = 1
সর্বদা সি 99 স্ট্যান্ডার্ড এবং হার্বিসন এবং স্টিল থেকে স্পষ্ট।
সম্পাদনা: আসলে (এটি আপনার upd 2 প্রশ্নের জবাবে হয়), যতটা C99 সংশ্লিষ্ট হয় sizeof(char)
হয় , বাইটে অধ্যায় 6.5.3.4 আবার থেকে:
আকারের অপারেটর তার অপারেন্ডের আকার (বাইটে) দেয়
সুতরাং উপরের উদ্ধৃতিটির সাথে মিলিয়ে 8 টি বিট এবং char
4 টি বাইট হিসাবে বাইট অসম্ভব: সি 99 এর জন্য একটি বাইট এক হিসাবে সমান char
।
আপনার 7 বিটের সম্ভাবনার উল্লেখের উত্তরে char
: c99 এ এটি সম্ভব নয়। স্ট্যান্ডার্ডের 5.2.4.2.1 বিভাগ অনুযায়ী সর্বনিম্ন 8:
তাদের প্রয়োগ-সংজ্ঞায়িত মানগুলি একই চিহ্ন সহ দেখানোগুলির আকারের সমান বা বৃহত্তর [আমার জোর] হবে।
- ক্ষুদ্রতম বস্তুর জন্য বিটের সংখ্যা যা বিট-ফিল্ড নয় (বাইট)
**CHAR_BIT 8**
- টাইপ স্বাক্ষরিত অক্ষরের একটি সামগ্রীর জন্য সর্বনিম্ন মান
**SCHAR_MIN -127
- স্বাক্ষরিত চরের প্রকারের একটি সামগ্রীর সর্বাধিক মান
**SCHAR_MAX +127
- স্বাক্ষরবিহীন চরের প্রকারের অবজেক্টের সর্বাধিক মান
**UCHAR_MAX 255
- টাইপ চরের কোনও সামগ্রীর জন্য সর্বনিম্ন মান
**CHAR_MIN** see below
- টাইপ চরের কোনও অবজেক্টের সর্বাধিক মান
**CHAR_MAX** see below
[...]
অভিব্যক্তিতে ব্যবহৃত টাইপের চরের বস্তুর মান যদি স্বাক্ষরিত পূর্ণসংখ্যার হিসাবে বিবেচনা করা হয়, CHAR_MIN এর মান SCHAR_MIN এর সমান এবং CHAR_MAX এর মান SCHAR_MAX এর সমান হবে। অন্যথায়, CHAR_MIN এর মান 0 হবে এবং CHAR_MAX এর মান UCHAR_MAX এর সমান হবে। UCHAR_MAX মান 2 ^ CHAR_BIT - 1 এর সমান হবে।