স্কয়ারের নিম্নলিখিত বাস্তবায়নটি সিএমপি / জে স্টেটমেন্টগুলির একটি সিরিজ তৈরি করে যেমন আমি যদি শৃঙ্খলাবদ্ধ হওয়ার কথা আশা করি তবে:
int square(int num) {
if (num == 0){
return 0;
} else if (num == 1){
return 1;
} else if (num == 2){
return 4;
} else if (num == 3){
return 9;
} else if (num == 4){
return 16;
} else if (num == 5){
return 25;
} else if (num == 6){
return 36;
} else if (num == 7){
return 49;
} else {
return num * num;
}
}
এবং নিম্নলিখিতটি ফেরতের জন্য একটি ডেটা টেবিল তৈরি করে:
int square_2(int num) {
switch (num){
case 0: return 0;
case 1: return 1;
case 2: return 4;
case 3: return 9;
case 4: return 16;
case 5: return 25;
case 6: return 36;
case 7: return 49;
default: return num * num;
}
}
জিসিসি শীর্ষেরটিকে নীচের অংশে অনুকূলিত করতে কেন অক্ষম?
রেফারেন্সের জন্য বিযুক্তি: https://godbolt.org/z/UP_igi
সম্পাদনা: মজার বিষয় হল, এমএসভিসি স্যুইচ কেসের জন্য ডেটা টেবিলের পরিবর্তে একটি জাম্প টেবিল তৈরি করে। এবং আশ্চর্যজনকভাবে, ঝনঝন তাদের একই ফলাফলের জন্য অনুকূল করে তোলে।
return
গুলি অগ্রাহ্য করছেন ; কেসগুলির কোনও হ'ল না breaks
, সুতরাং স্যুইচটিরও একটি কার্যকর আদেশ কার্যকর হয়। প্রতিটি শাখায় যদি / অন্য চেইনের রিটার্ন থাকে তবে এই ক্ষেত্রে শব্দার্থবিজ্ঞানের সমতুল্য। অপ্টিমাইজেশন অসম্ভব নয় । একটি কাউন্টারে নমুনা আইসিসি হিসাবে কোনও ক্রিয়াকে অনুকূলিত করে না।