Saya telah menemukan program C ini dari web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
Hal yang menarik dengan program ini adalah bahwa ketika dikompilasi dan dijalankan dalam mode C89, ia mencetak C89
dan ketika dikompilasi dan dijalankan dalam mode C99, ia mencetak C99
. Tetapi saya tidak dapat menemukan cara kerja program ini.
Bisakah Anda menjelaskan bagaimana argumen kedua printf
berfungsi pada program di atas?
Trik yang bagus - tetapi gagal
—
usr2564301
gcc
. Tanpa std=c99
Anda akan mendapatkan peringatan, dan jika Anda mengabaikannya, masihgcc
akan menafsirkan sebagai awal komentar (ah - Anda harus menggunakan juga. Saya sudah mengaktifkannya secara default.)//
-pedantic
@ Jongware Yah, saya dapatkan
—
ikh
C89
dengan eksplisit std=c89
di gcc 4.9.2.
Untuk berjaga-jaga seandainya seseorang menemukan ini saat mencari cara untuk menguji dukungan C99; tolong gunakan sesuatu seperti
—
Arkku
#if __STDC_VERSION__ >= 199901L
, bukan //
trik komentar. =)
Ia juga mencetak "C99" untuk C11 ...
—
Lundin
//
komentar gaya C ++ diperkenalkan di C99.