c++ - language - ¿Por qué la palabra "falso" está escrita en azul y la palabra "FALSO" escrita en púrpura en Visual Studio?
visual studio code español (3)
false
es una palabra clave en C ++; es azul por la misma razón for
es azul. FALSE
es una macro de preprocesador declarada por la API de Windows; es de color púrpura por la misma razón que MYFILE_H_DEFINED
es de color púrpura. Si accedes a las preferencias del editor para C ++, verás los colores que MSVC está usando para diferentes identificadores.
Por cierto, VERDADERO y FALSO son específicos de WinAPI y son un retroceso a C, y no deberían utilizarse, excepto cuando se comunique con WinAPI.
¿Por qué Visual Studio cambia el color de la palabra según la forma en que se ingresa?
false
con azul, pero FALSE
con púrpura.
true
con azul pero TRUE
con púrpura.
¿Hay alguna diferencia en el significado de ellos y, en caso afirmativo, qué es?
true
y false
son palabras clave en C ++, por lo que su IDE (no el compilador) las pinta de azul.
TRUE y FALSE a menudo se definen por varios encabezados, principalmente por compatibilidad con C y compiladores de C ++ más antiguos, donde true
y false
no son palabras clave.
En cuanto a su equivalencia, el estándar de C ++ no define sizeof(true)
y sizeof(false)
para ser 1 pero serán lo mismo que sizeof(bool)
. Nota al pie 69 para el estándar C ++:
sizeof (bool) no es necesario que sea 1.
Probablemente encontrará que sizeof(TRUE)
y sizeof(FALSE)
son sizeof(int)
ya que TRUE y FALSE a menudo se definen como tipos int
, pero no sería prudente suponer esto.
El resaltado de sintaxis es solo para el usuario para que pueda entender que la palabra que ingresó es una keyword
para el idioma. Cada idioma tiene su propio conjunto de palabras clave.
Solo para aclarar, ese no es el ''compilador'' que cambia el color. Eso es visual studio haciendo eso por ti. Basado en la extensión del archivo. Es decir (.cpp .java .py .js) el software cambiará por diferentes palabras.
El capital TRUE y FALSE son específicos de la API de Windows (más específicamente, macros) y, en el caso de las minúsculas, son específicos del lenguaje c ++.