Je passe par quelques notes de cours C, et chaque fichier source du programme C commence par un seul #
sur la première ligne du programme.
Ensuite, il y a des lignes vides, et après ces autres éléments, suivis de la main
fonction.
Quelle est la raison du #
?
(Il est hors limite maintenant et je ne peux pas vraiment demander au gars.)
Voici un exemple:
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
c
c-preprocessor
L'homme principal
la source
la source
#
, puis une ligne vierge, puis le programme.#
est l'obscurcissement. Si vous voulez confondre tout le monde, vous pouvez par exemple démarrer tous vos fichiers source avec la ligne#//#BEGIN#\\#
(qui ne fait absolument rien).Réponses:
Wow, cette exigence va rebrousserez chemin dans les années 1970.
Au tout début du C pré-standardisé, si vous vouliez invoquer le préprocesseur , vous deviez écrire un
#
comme première chose dans la première ligne d'un fichier source. L'écriture un seul#
en haut du fichier offre une flexibilité dans le placement des autres directives de préprocesseur.D'après un brouillon original en C du grand Dennis Ritchie lui-même - :
Ce document permet une excellente lecture (et m'a permis de sauter sur cette question comme un chat fou).
Je soupçonne que le conférencier est simplement sentimental - cela n'a pas été requis depuis ANSI C.
la source
#
sur une ligne en soi, juste qu'il commence par un#
, alors pourquoi ne pas aller directement pour un#include
? Ou est-ce que je comprends mal?Ne fait rien
Selon la norme ISO de C / C ++:
Donc, dans les compilateurs d'aujourd'hui, ce hachage vide ne fait rien (comme -
new-line ;
n'a aucune fonctionnalité).PS : en C pré-standardisé ,
# new-line
avait un rôle important, il était utilisé pour invoquer le pré-processeur C (comme souligné par @Bathsheba). Ainsi, le code ici a été écrit pendant cette période ou provenait de l'habitude.la source
Vous devez connaître le processus de compilation de C. Parce que c'est "doit savoir" comment le code source se convertit en code binaire exécutable (fichier).
À partir du processus de compilation, le code source C doit traverser la section du pré-processeur. Mais comment dire au compilateur de prétraiter le code? ... Que le symbole de temps # a été introduit dans l'indicateur de prétraitement du compilateur.
Par exemple,
#define PI 3.141
est dans le code source. Il sera ensuite modifié après la session de prétraitement. Autrement dit, tous les PI seront changés en 3.141.De cette façon
#include <stdio.h>
, les fonctions d'E / S standard seront ajoutées à votre code source.Si vous avez une machine Linux, compilez comme
gcc -save-temps source_code.c
. Et voyez les sorties du compilateur.la source