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 C89dan 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 printfberfungsi pada program di atas?
Trik yang bagus - tetapi gagal
—
usr2564301
gcc. Tanpa std=c99Anda 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
C89dengan eksplisit std=c89di 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.