Programmation Avancée en C


extokens.c

00001 /*
00002 
00003 $ gcc bug.c -o bug
00004 bug.c: In function `main':
00005 bug.c:24: error: missing terminating " character
00006 bug.c:24: error: syntax error before numeric constant
00007 bug.c:24: error: missing terminating " character
00008 $
00009 $ gcc -E bug.c -o bug.i
00010 $ gcc bug.i -o bug
00011 $ ./bug
00012 on line 24 we print:Hello World
00013 $
00014 
00015 */
00016 
00017 #include <stdio.h>
00018 
00019 #define toto(x, ...) printf("on line" #x "we print: " __VA_ARGS__)
00020 #define printf(...) toto(__LINE__, __VA_ARGS__)
00021 
00022 int main()
00023 {
00024         printf("Hello World\n");
00025         return 0;
00026 }