Bu C programını web'den buldum:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
Bu programla ilgili ilginç olan şey, derlendiğinde ve C89 modunda çalıştırıldığında, yazdırması C89
ve C99 modunda derlenip çalıştırıldığında yazdırmasıdır C99
. Ancak bu programın nasıl çalıştığını çözemiyorum.
printf
Yukarıdaki programdaki ikinci argümanın nasıl çalıştığını açıklayabilir misiniz ?
Güzel numara - ama başarısız oluyor
—
usr2564301
gcc
. Olmadan std=c99
bir uyarı alırsınız ve bunu göz ardı edersek, gcc
olacak hala yorumlamak //
bir yorumun başlangıcından olarak (ah - Kullanmak zorunda -pedantic
. Yanı ben varsayılan olarak bu var.)
@Jongware Eh, gcc 4.9.2'de
—
ikh
C89
açıkça anladım std=c89
.
Birinin bunu C99 desteğini test etmenin bir yolunu ararken bulması durumunda; lütfen yorum hilesi
—
Arkku
#if __STDC_VERSION__ >= 199901L
değil gibi bir şey kullanın //
. =)
Aynı zamanda C11 için "C99" yazdırır ...
—
Lundin
//
yorum C99'da tanıtıldı.