2014-09-05 14 views
29

Warum Visual Studio der auf dem Weg in Abhängigkeit Wort Farbe ändert sie eingegeben wird:Warum wird das Wort "false" blau geschrieben und das Wort "FALSE" in Visual Studio violett geschrieben?

false mit blau, aber FALSE mit lila.
true mit blau, aber TRUE mit lila.

Gibt es einen Unterschied in der Bedeutung von ihnen und wenn ja, was ist das?

+14

'FALSE' und' TRUE' sind Makros. –

+6

Das wird [Syntaxhervorhebung] (https://en.wikipedia.org/wiki/Syntax_highlighting) genannt und wird vom Texteditor ausgeführt, nicht vom Compiler. Welche Farbe (n) der Texteditor verwendet, hat überhaupt keinen Einfluss darauf, wie der Compiler Ihren Code analysiert oder wie Ihr Programm läuft. –

+5

@Insilico: Es ist nicht _absolutly_ nicht verwandt. Wir sprechen hier über Visual Studio. Es kompiliert den Text definitiv während der Eingabe (IntelliSense). So entstehen bei Fehlern die roten Schnörkel. – MSalters

Antwort

35

true und false sind Schlüsselwörter in C++, so dass Ihre IDE (nicht der Compiler) ist sie blau zu malen.

WAHR und FALSCH werden häufig durch verschiedene Header definiert ist, in erster Linie für die Kompatibilität mit C und älter C++ Compiler, wo true und false sind nicht Schlüsselwörter.

Was ihre Äquivalenz, die C++ Standard nicht nicht definieren sizeof(true) und sizeof(false) 1 sein, aber sie wird das gleiche sein wie sizeof(bool). Fußnote 69 für C++ Standard:

sizeof (int) nicht 1.

Sie werden wahrscheinlich, dass sizeof(TRUE) und sizeof(FALSE) sind sizeof(int) da TRUE zu finden sein erforderlich und FALSCH werden oft als int Typen definiert , aber es wäre unklug, dies anzunehmen.

38

false ist ein Schlüsselwort in C++; es ist aus dem gleichen Grund blau for ist blau. FALSE ist ein Präprozessor-Makro, das von der Windows-API deklariert wird. es ist aus dem gleichen Grund violett MYFILE_H_DEFINED ist lila. Wenn Sie in die Editoreinstellungen für C++ gehen, sehen Sie die Farben, die MSVC für verschiedene Bezeichner verwendet.

Übrigens sind TRUE und FALSE WinAPI-spezifisch und sind ein Rückfall zu C und sollten nicht verwendet werden außer bei der Kommunikation mit der WinAPI.

5

Die Syntaxhervorhebung ist nur für den Benutzer, so dass Sie verstehen, dass das Wort, das Sie eingaben, ein keyword für die Sprache ist. Jede Sprache hat ihre eigenen Schlüsselwörter.

Nur um zu verdeutlichen, das ist nicht der 'Compiler', der die Farbe ändert. Das macht Visual Studio für Sie. Basierend auf der Erweiterung der Datei. Ie (.cpp .java .py .js) ändert sich die Software für verschiedene Wörter.

Das Kapital TRUE und FALSE sind spezifisch für Windows API (genauer gesagt - Makros), und für den Kleinbuchstaben ist es spezifisch für C++ Sprache.

Verwandte Themen