Подтвердить что ты не робот

Почему слово "false" написано синим, а слово "FALSE" написано фиолетовым в Visual Studio?

Почему Visual Studio меняет цвет слова в зависимости от способа его ввода:

false с синим, но false с фиолетовым.
true с синим, но true с фиолетовым.

Есть ли разница в значении их и если да, то что это такое?

4b9b3361

Ответ 1

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, но было бы неразумно предполагать это.

Ответ 2

false - ключевое слово в С++; он синий по той же причине for синий. false - макрос препроцессора, объявленный API Windows; он фиолетовый по той же причине MYFILE_H_DEFINED фиолетовый. Если вы перейдете к настройкам редактора для С++, вы увидите цвета, которые MSVC использует для разных идентификаторов.

Кстати, TRUE и FALSE являются специфичными для WinAPI и являются возвратом к C и не должны использоваться, кроме как при общении с WinAPI.

Ответ 3

Подсветка синтаксиса предназначена только для пользователя, поэтому вы можете понять, что введенное вами слово является keyword для языка. Каждый язык имеет свой собственный набор ключевых слов.

Просто чтобы уточнить, это не "компилятор", изменяющий цвет. Это визуальная студия делает это за вас. На основе расширения файла. I.e(.cpp.java.py.js) программное обеспечение изменится для разных слов.

Столбец TRUE и FALSE специфичны для Windows API (более конкретно - макросы), а в нижнем регистре - для языка С++.