এমনকি যদি আপনি ভাবেন যে আপনার কোনওটি কী করতে পারে তার পরিণতি জানতে হবে না। কারও প্রয়োজন নেই কেন তা ব্যাখ্যা করার দরকার নেই কারণ আপনি প্রসঙ্গটি জানেন না। প্রশ্নটি "আমার কী অন্তর্নিহিততা জানতে হবে" তা নয় বরং "এটি বড়- বা সামান্য এডিয়ানিয়ান"। বিষয়টিতে মনোনিবেশ করুন দয়া করে!
এই বলে যে আমরা চাকাটি পুনরায় উদ্ভাবন না করে কেবল অ্যাপল এর জন্য সরবরাহকারী ম্যাক্রোগুলির উপর নির্ভর করি যদি এটি সম্ভবত সেরা অনুশীলন। কারণ হ'ল তারা এই ম্যাক্রোগুলি অনুকূল করতে বেশ কিছুটা সময় ব্যয় করেছেন এবং সিমুলেটারের পাশাপাশি ম্যাক, আইফোন এবং তাদের সমস্ত ওএস 'এবং হার্ডওয়্যারগুলিতে ভাল কাজ করে তা নিশ্চিত করেছেন।
আপনি যখন অনুরোধ করছেন তখন কী ঘটছে তা যদি আপনি খনন করেন তবে আপনি CFSwapInt16BigToHost
মন্তব্যগুলি দেখতে পাচ্ছেন যা পরামর্শ দেয় যে এই ম্যাক্রোগুলি সম্ভবত সবচেয়ে ভাল মেশিন কোড তৈরি করছে যা আপনি সংকলক অপ্টিমাইজেশানের সাহায্যে পেতে পারেন:
OS_INLINE
uint16_t
_OSSwapInt16(
uint16_t data
)
{
/* Reduces to 'rev16' with clang */
return (uint16_t)(data << 8 | data >> 8);
}
OS_INLINE
uint32_t
_OSSwapInt32(
uint32_t data
)
{
#if defined(__llvm__)
data = __builtin_bswap32(data);
#else
/* This actually generates the best code */
data = (((data ^ (data >> 16 | (data << 16))) & 0xFF00FFFF) >> 8) ^ (data >> 8 | data << 24);
#endif
return data;
}