Почему Visual Studio меняет цвет слова в зависимости от способа его ввода:
false
с синим, но false
с фиолетовым. true
с синим, но true
с фиолетовым.
Есть ли разница в значении их и если да, то что это такое?
Почему Visual Studio меняет цвет слова в зависимости от способа его ввода:
false
с синим, но false
с фиолетовым. true
с синим, но true
с фиолетовым.
Есть ли разница в значении их и если да, то что это такое?
true
и false
являются ключевыми словами на С++, поэтому ваша среда IDE (а не компилятор) рисует их синим цветом.
TRUE и FALSE часто определяются разными заголовками, в первую очередь для совместимости с C и более старыми компиляторами С++, где true
и false
являются не.
Что касается их эквивалентности, то в стандарте С++ не определить sizeof(true)
и sizeof(false)
равным 1, но они будут совпадать с sizeof(bool)
. Сноска 69 для стандарта С++:
sizeof (bool) не требуется 1.
Вероятно, вы обнаружите, что sizeof(true)
и sizeof(false)
являются sizeof(int)
, поскольку TRUE и FALSE часто определяются как типы int
, но было бы неразумно предполагать это.
false
- ключевое слово в С++; он синий по той же причине for
синий. false
- макрос препроцессора, объявленный API Windows; он фиолетовый по той же причине MYFILE_H_DEFINED
фиолетовый. Если вы перейдете к настройкам редактора для С++, вы увидите цвета, которые MSVC использует для разных идентификаторов.
Кстати, TRUE и FALSE являются специфичными для WinAPI и являются возвратом к C и не должны использоваться, кроме как при общении с WinAPI.
Подсветка синтаксиса предназначена только для пользователя, поэтому вы можете понять, что введенное вами слово является keyword
для языка. Каждый язык имеет свой собственный набор ключевых слов.
Просто чтобы уточнить, это не "компилятор", изменяющий цвет. Это визуальная студия делает это за вас. На основе расширения файла. I.e(.cpp.java.py.js) программное обеспечение изменится для разных слов.
Столбец TRUE и FALSE специфичны для Windows API (более конкретно - макросы), а в нижнем регистре - для языка С++.