![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Steklova Olga |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет
![]() В QtCreator (у меня 3.2.1) строка текста, начинающаяся с двух или более стоящих подряд символов вопроса (?? или ???), подсвечивается почему-то серым цветом, хотя при компиляции файла выдается ошибка. Такая строка имеет какой-то особый смысл? Сообщение отредактировал Steklova Olga - 16.9.2015, 11:28 |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Начнем с того, имеет ли такая строка смысл с позиции С\С++?
![]() |
|
|
Steklova Olga |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Нет, компилятор выдает ошибку.
Но QtCreator-то подсвечивает такие строки зачем-то. Комментарии, например, на код программы не влияют. Но, если их оформить особым образом, то их воспримет Doxigen. |
|
|
ahalaj |
![]()
Сообщение
#4
|
![]() Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Всё просто. Потому что строки, начинающиеся с "??", трактуются как триграфы.
Нет, компилятор выдает ошибку. Значит или данная комбинация не является валидным триграфом (после "??" должен идти конкретный символ, какой конкретно -- в википедию), или у компилятора выключена поддержка триграфов, или компилятор вообще триграфы не умеет. Но QtCreator-то подсвечивает такие строки зачем-то. А QtCreator получается в курсе насчёт триграфов и именно строки с ними и подсвечивает. Начнем с того, имеет ли такая строка смысл с позиции С\С++? ![]() Имеет. Во всяком случае пока что имеет. Правда уже не во всех компиляторах. А в будущем вообще собираются убрать поддержку этого безобразия, пришедшего из лохматых годов. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 23:26 |