Sections
Programme main.c
int main(int argc, char* argv[]) { return 0; }
Pré-compilation (affichage à l'écran): gcc -E main.c
# 1 "main.c" # 1 "<built-in>" # 1 "<command line>" # 1 "main.c" int main(int argc, char* argv[]) { return 0; }
Programme main2.c avec un #define
#define EXIT_SUCCESS 0 int main(int argc, char* argv[]) { return EXIT_SUCCESS; }
Résultat avec gcc -E main2.c
# 1 "main2.c" # 1 "<built-in>" # 1 "<command line>" # 1 "main2.c" int main(int argc, char* argv[]) { return 0; }
Note: la définition EXIT_SUCCESS a été remplacée par le pré-processeur.
Programme main3.c avec un #include
Le fichier main3.h contient 2 lignes:
#define EXIT_SUCCESS 0 #define EXIT_FAILURE 1
#include <main3.h> int main(int argc, char* argv[]) { return EXIT_SUCCESS; }
Résultat avec gcc -E main3.c
# 1 "main3.c" # 1 "<built-in>" # 1 "<command line>" # 1 "main3.c" # 1 "main3.h" 1 # 3 "main3.c" 2 int main(int argc, char* argv[]) { return 0; }
Explication des numéros:
La ligne [#1 "main3.h" 1] indique qu'on doit entrer (le deuxième 1) dans le fichier "main3.h" à partir de sa première ligne (premier 1).
La ligne [#3 "main3.c" 2] indique qu'on doit retourner (le 2) dans le fichier "main3.c" à la ligne 3.
S'il y a plus de 7 lignes vides consécutives (vide ou commentaire), une ligne # NUMEROLIGNE "fichier.c" apparaîtra. Il s'agit d'un saut pour le compilateur. Sinon, chaque ligne vide du fichier principal sera affichée avec -E.
Notes
EXIT_SUCCESS = 0 et EXIT_FAILURE = 1 sont définies dans les fichiers /usr/include/stdlib.h ou /usr/include/c++/4.1/cstdlib et doivent être inclus avec un #include.
les macros
On peut afficher les macros définies dans un .c à l'aide de la commande: gcc -E -dM nomprogramme.c. On peut aussi enlever les macros GNU à l'aide de gcc -E -dM -undef nomprogramme.c
Dernière modification: 2007-10-13 17:14:12 par Yan Morin
Hébergé par ProgYSM