সি ++ স্ট্যান্ডার্ডের বিভাগটি $ 3.6.1 / 1 পড়ছে,
একটি প্রোগ্রামে মূল নামে একটি বিশ্বব্যাপী ফাংশন থাকবে যা প্রোগ্রামটির মনোনীত শুরু ।
এখন এই কোডটি বিবেচনা করুন,
int square(int i) { return i*i; }
int user_main()
{
for ( int i = 0 ; i < 10 ; ++i )
std::cout << square(i) << endl;
return 0;
}
int main_ret= user_main();
int main()
{
return main_ret;
}
এই নমুনা কোডটি আমি যা করতে চাইছি তা করে, অর্থাৎ 0 থেকে 9 পর্যন্ত পূর্ণসংখ্যার বর্গক্ষেত্রটি মুদ্রণ করে ফাংশনে প্রবেশের আগেmain()
যা প্রোগ্রামটির "শুরু" বলে মনে করা হয়।
আমি এটি -pedantic
বিকল্প, জিসিসি 4.5.0 সহ সংকলন করেছি । এটি কোনও ত্রুটি দেয় না, এমনকি সতর্কতাও দেয় না!
আমার প্রশ্নটি হ'ল
এই কোডটি কি আসলে স্ট্যান্ডার্ড কনফর্মেন্ট?
এটি যদি মানসম্মত হয় তবে স্ট্যান্ডার্ড কী বলে তা অকার্যকর করে না? main()
এই প্রোগ্রাম শুরু হয় না! user_main()
আগে মৃত্যুদন্ড কার্যকর main()
।
আমি বুঝি যে বিশ্বব্যাপী পরিবর্তনশীল আরম্ভ করতে main_ret
, use_main()
প্রথম, executes তবে সেটা ভিন্ন জিনিস পুরাপুরি হয়; পয়েন্ট যে, এটা করে $ 3.6.1 / 1 স্ট্যান্ডার্ড থেকে উদ্ধৃত বিবৃতি বাতিল, যেমন main()
নয় শুরু কর্মসূচির; এটা সত্য হয় শেষ এর এই প্রোগ্রাম!
সম্পাদনা করুন:
আপনি কীভাবে 'শুরু' শব্দের সংজ্ঞা দেন?
এটি "প্রোগ্রামের শুরু" বাক্যটির সংজ্ঞায় ফোটে । সুতরাং আপনি কিভাবে এটি সংজ্ঞায়িত করবেন?
main()
হিসাবে যথেষ্ট