441 votes

Pourquoi tous les fichiers C écrits par mon conférencier commencent-ils par un seul # sur la première ligne?

Je parcoure 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, suivies de cet autre élément suivi de la fonction main .

Quelle est la raison pour laquelle # ?

(Il est hors terme maintenant et je ne peux pas vraiment demander au gars.)

Voici un exemple:

 #

#include <stdio.h>
int main() {
   printf("Hello, World!");
   return 0;
}
 

624voto

Bathsheba Points 23209

Wow, cette exigence va au chemin du retour dans les années 1970.

Dans le très tôt les jours de pré-standardisé C, si vous voulez invoquer le préprocesseur, alors que vous aviez à écrire un # que la première chose dans la première ligne du fichier source. Écrit seulement un # dans le haut du fichier offre la flexibilité dans le placement des autres directives de préprocesseur.

À partir d' un original C projet par le grand Dennis Ritchie lui-même:

12. Compilateur de ligne de contrôle

[...] Dans le but de causer [la] préprocesseur à être invoquée, il est nécessaire que le très la première ligne du programme commencent par #. Depuis null lignes sont ignorées par le préprocesseur, cette ligne doivent contenir aucune autre de l'information.

Ce document est un plaisir à lire (et m'a permis de sauter sur cette question comme une folle de chat).

Je soupçonne que c'est le chargé de cours tout simplement d'être sentimental, il n'a pas été nécessaire certes, car c ANSI.

3voto

Minhas Kamal Points 5582

Ne Fait Rien

La norme ISO du C/C++:

Un prétraitement de la directive de la forme

# new-line

n'a aucun effet.

Donc, aujourd'hui, dans les compilateurs, qui hachage vide ne fait rien (comme- new-line ; n'a pas de fonctionnalité).


PS: En pré-standardisés, C, # new-line avaient un rôle important, il a été utilisé pour invoquer la C le Pré-Processeur (comme l'a fait remarquer @Bethsabée). Donc, le code ici a été écrite dans ce délai, ou provient de l'habitude.

-8voto

GOBI Points 9

Que vous devez savoir sur le processus de Compilation de C. Parce que c'est "doit savoir" comment le code Source de la conversion en code binaire Exécutable(Fichier).

Depuis le Processus de Compilation de Code source C Traverser le pré-processeur Section. Mais comment faire pour dire au Compilateur pour pré-traiter le code?... Que le temps Symbole " # " a été introduit à l'indicateur de Prétraiter pour le compilateur.

Par Exemple #define PI 3.141 est dans le code Source. Ensuite, il sera changer après le Prétraitement de la session. Les moyens, toutes les PI sera changé en 3.141.

Ce comme l' #include <stdio.h>, le standard I/O Fonctions seront ajoutées dans votre code Source. Si vous avez la machine linux, compiler comme gcc -save-temps source_code.c. Et voir le compilateur sorties.

......bon.....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X