আমি ওয়েব থেকে এই সি প্রোগ্রামটি পেয়েছি:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
এই প্রোগ্রামটির সাথে মজার বিষয়টি হ'ল এটি যখন C89 মোডে সংকলিত হয় এবং চালিত হয় C89
তখন এটি মুদ্রণ করে এবং যখন এটি সংকলিত হয় এবং C99 মোডে চালিত হয়, এটি মুদ্রণ করে C99
। তবে এই প্রোগ্রামটি কীভাবে কাজ করে তা আমি বুঝতে সক্ষম নই।
printf
উপরের প্রোগ্রামে দ্বিতীয় যুক্তি কীভাবে কাজ করে তা আপনি ব্যাখ্যা করতে পারেন ?
দুর্দান্ত কৌশল - তবে এটি ব্যর্থ হয়
—
usr2564301
gcc
। ছাড়া std=c99
আপনি একটি সর্তকবার্তা পান করব এবং যদি আপনি এটি উপেক্ষা gcc
করবে এখনও ব্যাখ্যা //
একটি মন্তব্য শুরুর হিসাবে (অই - আপনি ব্যবহার করতে হবে -pedantic
। পাশাপাশি আমি ডিফল্টরূপে উপর রয়েছে।)
@ জংওয়্যার ওয়েল, আমি জিসিসি ৪.৯.২ এ
—
আইখ
C89
স্পষ্টভাবে পেয়েছি std=c89
।
কেবলমাত্র C99 সমর্থনের জন্য পরীক্ষার উপায় অনুসন্ধান করার সময় যদি কেউ এটি খুঁজে পায়; দয়া
—
আরক্কু
#if __STDC_VERSION__ >= 199901L
করে //
মন্তব্য কৌশল নয়, এর মতো কিছু ব্যবহার করুন। =)
এটি সি 11 এর জন্য "সি 99" মুদ্রণ করে ...
—
লন্ডিন
//
মন্তব্য C99 সালে চালু হয়েছিল।