বেশিরভাগ সময়, সম্ভবত, তবে এটিতে ফার্মটি বাজি ধরবেন না, কারণ আপনি যদি ভুল করেন তবে আপনি বড় হারাবেন।
আপনার যদি সত্যই সত্যই অভিন্ন বাইনারি তথ্য থাকা দরকার, আপনাকে বিটমাস্ক সহ বিটফিল্ড তৈরি করতে হবে - যেমন আপনি বার্তার জন্য স্বাক্ষরযুক্ত স্বল্প (১ bit বিট) ব্যবহার করেন এবং তারপরে তিনটি শীর্ষস্থানীয় বিট উপস্থাপনের জন্য সংস্করণমাস্ক = 0xE000 এর মতো জিনিস তৈরি করুন।
স্ট্রাক্টগুলির মধ্যে প্রান্তিককরণের ক্ষেত্রে একই সমস্যা রয়েছে। উদাহরণস্বরূপ, স্পার্ক, পাওয়ারপিসি এবং 680x0 সিপিইউগুলি সমস্ত বিগ-এন্ডিয়ান এবং স্পার্ক এবং পাওয়ারপিসি সংকলকগুলির জন্য সাধারণ ডিফল্ট হ'ল স্ট্রাক্ট সদস্যদের 4-বাইট সীমানায় সারিবদ্ধ করা। যাইহোক, আমি 680x0 এর জন্য ব্যবহৃত একটি সংকলক কেবল 2-বাইট সীমানায় সংযুক্ত ছিল - এবং প্রান্তিককরণ পরিবর্তন করার কোনও বিকল্প ছিল না!
সুতরাং কিছু স্ট্রাক্টের জন্য, স্পার্ক এবং পাওয়ারপিসিতে আকারগুলি অভিন্ন, তবে 680x0 এ ছোট এবং কিছু সদস্যের কাঠামোর মধ্যে বিভিন্ন মেমরি অফসেট রয়েছে।
এটি যে একটি প্রকল্পে আমি কাজ করেছি তাতে সমস্যা ছিল, কারণ স্পার্কে চলমান একটি সার্ভার প্রক্রিয়া কোনও ক্লায়েন্টকে জিজ্ঞাসা করবে এবং এটি বড়-এন্ডিয়ান ছিল তা আবিষ্কার করবে এবং ধরে নেবে এটি কেবল নেটওয়ার্কে বাইনারি স্ট্রোকগুলি স্কুয়ার্ট করতে পারে এবং ক্লায়েন্টটি মোকাবেলা করতে পারে। এবং এটি পাওয়ারপিসি ক্লায়েন্টদের জন্য দুর্দান্ত কাজ করেছে এবং 680x0 ক্লায়েন্টের সাথে বিগ-টাইম ক্র্যাশ করেছে। আমি কোডটি লিখিনি, এবং সমস্যাটি খুঁজতে বেশ খানিকটা সময় নিয়েছে। তবে একবার করার পরে এটি ঠিক করা সহজ ছিল।