2014-09-05 21 views
29

Perché Visual Studio cambiare il colore parola a seconda della modo in cui viene inserito:Perché la parola "false" è scritta in blu e la parola "FALSE" è scritta in viola in Visual Studio?

false con il blu, ma FALSE con viola.
true con blu ma TRUE con viola.

C'è qualche differenza nel loro significato e se sì che cos'è?

+14

'FALSE' e' TRUE' sono macro. –

+6

Questo viene chiamato [evidenziazione della sintassi] (https://en.wikipedia.org/wiki/Syntax_highlighting), ed è eseguito dall'editor di testo, non dal compilatore. Di che colore/i usa l'editor di testo non ha assolutamente alcuna influenza sul modo in cui il compilatore analizza il codice o come viene eseguito il programma. –

+5

@Insilico: Non è _assolutamente_ non correlato. Stiamo parlando di Visual Studio qui; compila definitivamente il testo durante la digitazione (IntelliSense). È così che produce gli scarabocchi rossi sugli errori. – MSalters

risposta

35

true e false sono parole chiave in C++ così il vostro IDE (non il compilatore) è la pittura li blu.

TRUE e FALSE sono spesso definiti da varie intestazioni, in primo luogo per la compatibilità con C e più anziani compilatori C++ dove true e false non sono parole chiave.

quanto riguarda la loro equivalenza, lo standard C++ fa non definiscono sizeof(true) e sizeof(false) essere 1 ma sarà essere uguale sizeof(bool). La nota 69 per C++ standard di:

sizeof (bool) non è richiesto di essere 1.

Probabilmente troverete che sizeof(TRUE) e sizeof(FALSE) sono sizeof(int) dal TRUE e FALSE sono spesso definiti come int tipi , ma non sarebbe saggio assumerlo.

38

false è una parola chiave in C++; è blu per lo stesso motivo for è blu. FALSE è una macro del preprocessore dichiarata dall'API di Windows; è viola per lo stesso motivo MYFILE_H_DEFINED è viola. Se vai nelle preferenze dell'editor per C++, vedrai i colori che MSVC sta usando per identificatori diversi.

Per inciso, TRUE e FALSE sono specifici per WinAPI e sono un ritorno a C, e non dovrebbero essere utilizzati tranne quando si comunica con WinAPI.

5

L'evidenziazione della sintassi è solo per l'utente in modo da poter capire che la parola digitata è una keyword per la lingua. Ogni lingua ha il proprio set di parole chiave.

Giusto per chiarire, quello non è il "compilatore" che cambia il colore. Quello è lo studio visivo che lo fa per te. Basato sull'estensione del file. I.e (.cpp .java .py .js) il software cambierà per parole diverse.

Il capitale TRUE e FALSE sono specifici dell'API di Windows (in particolare - macro) e, come nel caso in minuscolo, è specifico del linguaggio C++.

Problemi correlati