নন-8-বিট চরের সাথে প্ল্যাটফর্মগুলিতে কী ধরণের বিবেচনা করা উচিত?
স্থানান্তরিত করার সময় যাদু সংখ্যাগুলি ঘটে;
এর মধ্যে বেশিরভাগগুলি CHAR_BIT এবং উদাহরণস্বরূপ 8 এবং 255 (বা অনুরূপ) এর পরিবর্তে UCHAR_MAX ব্যবহার করে বেশ সহজেই পরিচালনা করা যায়।
আশা করি আপনার বাস্তবায়ন সেগুলি সংজ্ঞায়িত করেছে :)
এগুলি হ'ল "সাধারণ" বিষয়গুলি .....
অন্য অপ্রত্যক্ষ সমস্যাটি হ'ল আপনার কাছে রয়েছে:
struct xyz {
uchar baz;
uchar blah;
uchar buzz;
}
এটি একটি প্ল্যাটফর্মে 24 বিট "কেবল" নিতে পারে (সেরা ক্ষেত্রে) নিতে পারে তবে 72২ বিট অন্যত্র নিতে পারে .....
যদি প্রতিটি উচার "বিট পতাকা" ধারণ করে থাকে এবং প্রতিটি উচরের কাছে কেবল "2" উল্লেখযোগ্য "বিট বা পতাকা ছিল যা আপনি বর্তমানে ব্যবহার করছেন এবং আপনি কেবল" স্পষ্টতা "এর জন্য এগুলিকে 3 টি uchars এর মধ্যে সংগঠিত করেছেন, তবে এটি তুলনামূলকভাবে" আরও অপচয় "হতে পারে যেমন 24-বিট উচর সহ একটি প্ল্যাটফর্ম .....
কিছুতেই বিটফিল্ড সমাধান করতে পারে না, তবে তাদের দেখার জন্য অন্যান্য জিনিস রয়েছে ....
এই ক্ষেত্রে, কেবলমাত্র একটি একক এনাম আপনার "আসলতম" আকারের পূর্ণসংখ্যার আসল উপায় হতে পারে যা আপনার আসলে প্রয়োজন ...
সম্ভবত একটি বাস্তব উদাহরণ নয়, তবে কিছু কোড দিয়ে পোর্টিং / খেলার সময় আমার এই "বিট" এর মতো জিনিস .....
কেবল সত্য যে কোনও উচর যদি "সাধারণত" প্রত্যাশার চেয়ে ততবার বড় হয় তবে এই জাতীয় 100 টি কাঠামো কিছু প্ল্যাটফর্মে প্রচুর স্মৃতি নষ্ট করতে পারে ..... যেখানে "সাধারণভাবে" এটি কোনও বড় বিষয় নয় ... ।
সুতরাং জিনিসগুলি এখনও "ভাঙ্গা" হতে পারে বা এই ক্ষেত্রে "খুব দ্রুত স্মৃতি খুব দ্রুত নষ্ট করে" এমন একটি অনুমানের কারণে যে কোনও প্ল্যাটফর্মের তুলনায় র্যামের তুলনায় একটি প্ল্যাটফর্মের উচর "খুব অপব্যয় নয়" ... ..
সমস্যাটি আরও সুস্পষ্ট হতে পারে যেমন ইন্টস বা অন্যান্য ধরণের ক্ষেত্রে যেমন আপনার কিছু কাঠামো রয়েছে যার জন্য 15 টি বিট প্রয়োজন, তাই আপনি এটি একটি আটকে আটকে রাখুন, তবে অন্য কোনও প্ল্যাটফর্মে একটি ইনট 48 বিট বা যাই হোক না কেন .... ।
"সাধারণত" আপনি এটিকে 2 টি uchars মধ্যে বিভক্ত করতে পারেন, তবে উদাহরণস্বরূপ 24-বিট উচরের সাথে আপনার কেবল একটি প্রয়োজন হবে .....
সুতরাং একটি এনাম একটি ভাল "জেনেরিক" সমাধান হতে পারে ....
আপনি কীভাবে সেই বিটগুলিতে অ্যাক্সেস করছেন তার উপর নির্ভর করে :)
সুতরাং, "ডিজাইনের ত্রুটিগুলি" থাকতে পারে যা তাদের মাথা পিছনে ফেলে .... এমনকি যদি কোডটি এখনও কাজ করে / উচার বা ইউন্টের আকার নির্বিশেষে সূক্ষ্মভাবে চালায় ...
আপনার কোডে কোনও "ম্যাজিক নম্বর" না থাকলেও এ জাতীয় জিনিসগুলি নজর রাখতে হবে ...
আশা করি এটি সার্থক হয় :)