আমি কিছু এমুলেটর কোডটি পড়ছি এবং আমি সত্যিই অদ্ভুত কিছুকে মোকাবিলা করেছি:
switch (reg){
case 'eax':
/* and so on*/
}
এটা কিভাবে সম্ভব? আমি ভেবেছিলাম আপনি কেবল switchঅবিচ্ছেদ্য প্রকারের উপরই পারেন। কিছু ম্যাক্রো কৌতুক চলছে?
int, তাই এটি আইনী। তবে, একটি বহু-চরিত্রের ধ্রুবকের মান প্রয়োগ-সংজ্ঞায়িত, সুতরাং কোডটি অন্য সংকলকটিতে প্রত্যাশার মতো কাজ করতে পারে না। উদাহরণস্বরূপ, eaxহতে পারে 0x65, 0x656178, 0x65617800, 0x786165, 0x6165, নাকি অন্য কিছু।
'eax' != 'ebx', অবশ্যই, তাই এটি শুধুমাত্র আপনার এক বা উদাহরণ দুটি ব্যর্থ। যদিও কোথাও কোথাও এমন কিছু কোড থাকতে পারে যা কার্যকরভাবে ধরে নেওয়া *(int*)("eax") == 'eax'হয় এবং তাই আপনার বেশিরভাগ উদাহরণকে ব্যর্থ করে।
'eax'সমান 'ebx'বা এর সাথে তুলনা করতে পারে 'ax', এবং স্যুইচ বিবৃতিটি যেমন ইচ্ছা তেমন কাজ করবে না।
'eax'এবং এটি ধ্রুবক পূর্ণসংখ্যার মান গণনা করে