I've found this C program from the web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
The interesting thing with this program is that when it is compiled and run in C89 mode, it prints C89
and when it is compiled and run in C99 mode, it prints C99
. But I am not able to figure out how this program works.
Can you explain how the second argument of printf
works in the above program?
C99 allows //
-style comments, C89 does not. So, to translate:
C99:
printf("C%d\n",(int)(90-(-4.5 /*Some comment stuff*/
-4.5)));
// Outputs: 99
C89:
printf("C%d\n",(int)(90-(-4.5/
-4.5)));
/* so we get 90-1 or 89 */
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With