7Fermer9
flankerLe 14/04/2009 à 15:51
Folco (./5) :
Ok, merci. Au fait, le extern sert à quoi ? A dire que la variable n'est pas locale à un seul source ?

GCC va compiler les fichiers .c les uns après les autres. Supposons que ton projet comporte deux fichiers (strings.c et main.c).

Si tu mets char *string1, *string2 dans strings.h et que tu inclues strings.h dans les deux fichiers, gcc va créer les variables deux fois (une fois quand il compile strings.c, une fois en compilant main.c), et quand il va créer le fichier final en collant les deux résultats, il va râler par ce que string1 et string2 sont définies deux fois.

Extern permet de dire à gcc quand il compile main.c que string1 est de type char *et qu'il est défini ailleurs. La variable n'est créée qu'avec strings.c, et donc on pourra recoller les deux morceaux sans problème.

Et y a-t-il un type BOOL ou assimilé ?

Non ^^
mais en général, 0 == FALSE, > 0 == TRUE