Quel est le sens de l' #ligne en langage C?
Quel est le sens de #line
dans le C langue? Où serait-il être utilisé?
Vous devez vous connecter pour publier un commentaire.
Quel est le sens de #line
dans le C langue? Où serait-il être utilisé?
Vous devez vous connecter pour publier un commentaire.
Il indique au compilateur où la ligne suivante provenait en fait de. Il n'est généralement le préprocesseur C qui ajoute de ces, par exemple, lors de l'inclusion d'un fichier, il indique au compilateur (qui est au fond que de voir un flux de données) que nous cherchons à un autre fichier.
Cela peut sembler étrange, mais le préprocesseur insère simplement les fichiers d'en-tête où vous indiquez votre comprend, et le compilateur travaille sur l'ensemble de la chose (tous les fichiers d'en-tête concaténé avec votre code source), vous pouvez vérifier le résultat de la préprocesseur étape si vous utilisez gcc avec
gcc -E myfile.c
. De là, vous remarquerez qu'il ajoute un#line
directive, chaque fois que vous d'inclure des fichiers, et aussi chaque fois qu'il réduit la quantité de texte de la fed pour le compilateur (tels que de grandes quantités de commentaires peut être réduite à un seul#line
directive, le saut à l'avance)Il est également utilisé par d'autres programmes, tels que le bison/yacc pour vous dire que le problème (si il y a un problème de compilation) est liée à vos règles de fichier à une ligne spécifique, dont le compilateur seraient autrement pas en mesure de le faire, comme le bison/yacc génère du c-fichiers.
cl.exe /P myfile.c
Il est appelé le préprocesseur contrôle de la ligne de la directive.
Les extensions des deux
__FILE__
et__LINE__
sont modifiées que si un#line
directive est utilisée.Il provoque le compilateur pour afficher le numéro de ligne de la prochaine ligne de source que le nombre spécifié.
Son utilisation principale est de rendre le compilateur fournir plus de messages d'erreur significatif.
Vous pouvez trouver plus d'explication et un exemple d'utilisation dans IBM documentation.
C'est un pragma mot-clé:
"#ligne vous permet de modifier le compilateur du numéro de ligne et (éventuellement) le nom de fichier de sortie pour les erreurs et les avertissements. Cet exemple montre comment le rapport de deux mises en garde associées à des numéros de ligne. Le n ° de ligne de 200 directive forces de la ligne nombre de 200 (bien que la valeur par défaut est #7) et jusqu'à ce que la ligne suivante #la directive, le nom de fichier sera signalé comme "Spécial". Le #par défaut, de la directive renvoie à la numérotation de ligne par défaut, la numérotation, qui compte le nombre de lignes qui ont été renuméroté par la directive précédente."
#line
pragma?#pragma
en ce qu'il est [aussi] un compilateur, et pas seulement une directive de préprocesseur. Le préprocesseur ne pas le supprimer, et le compilateur interprète de changer certains comportements (dans ce cas, les rapports d'erreurs,__LINE__
, et__FILE__
).Il vous permet de changer l'apparente le numéro de ligne du fichier.
La seule utilisation que je peux penser pour elle est de faire de la ligne de numéros de sain d'esprit après une longue série de multi-ligne macros.
d'usage:
Il est principalement utilisé pour alimenter le fichier des noms et de numéros de ligne d'un fichier source à partir de laquelle un fichier C (en-tête ou mise en œuvre) a été créé. Étant donné que, le compilateur pourrait émettre des diagnostics qui font allusion à la source de fichier plutôt que dans le fichier généré.
Préprocesseurs également l'utiliser pour faire allusion compris les en-têtes dans un prétraitées fichier qui a ces élargi.
# est la chaîne injing symbole pour le processeur c et c++