Elmoricq a écrit :
Uniquement pour le code qui suit la directive, celui qui le précède n'est pas affecté :
$ cat v1.c #include <stdio.h> int main(void) { printf("its teh lolilol : %s\n", TUPEUXPASTEST); #define TUPEUXPASTEST "bidulotruc" printf("ahah ur teh pwned : %s\n", TUPEUXPASTEST); return 0; } $ gcc -W -Wall -O2 -pedantic v1.c v1.c: In function `main': v1.c:6: error: `TUPEUXPASTEST' undeclared (first use in this function) v1.c:6: error: (Each undeclared identifier is reported only once v1.c:6: error: for each function it appears in.) |
$ cat v2.c #include <stdio.h> int main(void) { #define TUPEUXPASTEST "bidulotruc" printf("its teh lolilol : %s\n", TUPEUXPASTEST); printf("ahah ur teh pwned : %s\n", TUPEUXPASTEST); return 0; } $ gcc -W -Wall -O2 -pedantic v2.c | J'ai déjà utilisé un #define en milieu de fonction, pour définir une macro temporaire. Genre au lieu d'écrire, pour une raison x ou y, un truc genre structure.variable.indice.bidule.chose 10 fois dans une fonction, je tape un truc genre :
#define MACHIN structure.variable.indice.bidule.chose <...utilisation de MACHIN à toutes les sauces ...> #undef MACHIN | (l'exemple que je donne ici n'est pas des plus représentatifs, j'ai pas de bon exemple en tête)
|