এখানে এনাম সংজ্ঞা এবং একটি mainফাংশন সহ একটি সাধারণ সি ফাইল রয়েছে :
enum days {MON, TUE, WED, THU};
int main() {
enum days d;
d = WED;
return 0;
}
এটি নিম্নলিখিত এলএলভিএম আইআর স্থানান্তর করে:
define dso_local i32 @main() #0 {
%1 = alloca i32, align 4
%2 = alloca i32, align 4
store i32 0, i32* %1, align 4
store i32 2, i32* %2, align 4
ret i32 0
}
%2স্পষ্টতই dপরিবর্তনশীল, যা এটি 2 প্রদান করে। %1শূন্যটি সরাসরি ফিরে আসলে কী মিলবে ?
clang-9 -S -emit-llvm simple.c
main( গডবোল্ট.আর্গ / জেড / কেইটিএস- গুলি ) এর আগে ইনিশিয়ালেশনের সাথে কিছু করার আছে । লিঙ্কটি দেখায় যে কীভাবে সমাবেশটি উত্সটিতে ম্যাপ করা হয়েছে
mainপরিবর্তন করেন তবে রহস্যজনক অতিরিক্ত পরিবর্তনশীল অদৃশ্য হয়ে যায়। মজার বিষয় হল, আপনি returnবিবৃতি সম্পূর্ণরূপে বাদ দিলে এটিও অদৃশ্য হয়ে যায় (যা mainসি এর জন্য বৈধ এবং সমতুল্য return 0;)।
mainকরেন যে int main(int argc, char **argv)আপনি দেখতে argcএবং argvস্ট্যাকের অনুলিপি করেছেন, তবে রহস্যজনক শূন্য ভেরিয়েবলটি এগুলি ছাড়াও এখনও রয়েছে।