Was sind die gültigen Zeichen für Makronamen?
Sind im C-Stil makro-Namen unterliegen den gleichen Regeln entsprechen wie Bezeichner? Nach einem compiler-upgrade, es ist jetzt Strahlen die Warnung für eine legacy-Anwendung:
warning #3649-D: white space is required between the macro name "CHAR_" and its replacement text
#define CHAR_& 38
Diese Codezeile ist der Definition den ASCII-Wert-Konstante für ein kaufmännisches und-Zeichen.
#define DOL_SN 36
#define PERCENT 37
#define CHAR_& 38
#define RT_SING 39
#define LF_PAR 40
Ich gehe davon aus, dass diese definition (eigentlich nicht verwiesen wird, indem Sie jeden beliebigen code eingeben, soweit ich das sagen kann) ist fehlerhaft und sollte geändert werden, um so etwas wie "CHAR_AMPERSAND"?
InformationsquelleAutor der Frage An̲̳̳drew | 2008-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Makro-Namen dürfen nur aus alphanumerischen Zeichen und Unterstrichen, d.h.
'a-z'
'A-Z'
'0-9'
und'_'
und das erste Zeichen sollte nicht eine Ziffer sein. Einige Präprozessoren erlauben auch das Dollarzeichen'$'
aber Sie sollten es nicht verwenden; leider kann ich nicht zitieren, der C-standard da ich nicht eine Kopie davon.Aus der GCC-Dokumentation:
InformationsquelleAutor der Antwort Adam Rosenfield
clang
ermöglicht eine Menge "verrückte" Charaktere.. obwohl ich habe gekämpft, um zu finden,viel Reim oder Grund zu warum einige erlaubt sind, und andere sind nicht. Zum Beispiel..doch
Wer weiß. Ich würde gerne... aber Google hat so scheiterte mir, so weit. Jeder Einblick über das Thema, würde geschätzt™️.
InformationsquelleAutor der Antwort Alex Gray
Du hast Recht, die gleichen Regeln gelten auch für makro-und IDS soweit die Namen angeht: gültige Zeichen sind [A-Za-z0-9_].
Es die gemeinsame Verwendung mit GROßGESCHRIEBENEN Namen zu unterscheiden, Makros von anderen Bezeichner - Variablen und Funktion von Namen.
InformationsquelleAutor der Antwort philant
Den gleichen Regeln, die angeben, gültige Bezeichner für Variablennamen gelten die makro-Namen mit der Ausnahme, dass Makros haben den gleichen Namen als Schlagwörter. Gültige Zeichen in Bezeichner-Namen gehören
digits
undnon-digits
und dürfen nicht mit einer Ziffer.non-digits
umfassen die Großbuchstaben A-Z, die Kleinbuchstaben a-z, der Unterstrich und die Implementierung der definierten Zeichen.InformationsquelleAutor der Antwort Robert Gamble