मुझे वेब से यह C प्रोग्राम मिला है:
#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
@Jongware खैर, मैं
—
--ख
C89
स्पष्ट रूप std=c89
से gcc में 4.9.2 के साथ मिला ।
बस अगर किसी को C99 समर्थन के लिए परीक्षण करने के तरीके की खोज करते समय यह मिलता है; कृपया कुछ का उपयोग करें
—
अर्कु
#if __STDC_VERSION__ >= 199901L
, //
टिप्पणी की चाल नहीं। =)
यह C11 के लिए "C99" भी प्रिंट करता है ...
—
लंडिन
//
टिप्पणी C99 में पेश की गई थी।