Альтернативные токены C
Стандартная библиотека C (libc) |
---|
Общие темы |
Разные заголовки |
|
Альтернативные токены C относятся к набору альтернативных вариантов написания общих операторов языка программирования C. Они реализованы как группа макроконстант в стандартной библиотеке C в iso646.h
заголовок. Токены были созданы Бьярном Страуструпом для предстандартного языка C++. [ 1 ] и были добавлены в стандарт C в поправке к стандарту C90 1995 года через библиотеку, чтобы избежать поломки существующего кода.
Альтернативные токены позволяют программистам использовать языка C побитовые и логические операторы , которые в противном случае было бы трудно набрать на некоторых международных и не QWERTY -клавиатурах. Имя заголовочного файла, в котором они реализованы, относится к стандарту ISO/IEC 646 , 7-битному набору символов с рядом региональных вариаций, некоторые из которых имеют акцентированные символы вместо знаков препинания, используемых операторами C.
Макросы
[ редактировать ]The iso646.h
заголовок определяет следующие 11 макросов, как указано ниже: [ 2 ]
Макрос | Определяется как |
---|---|
and |
&&
|
and_eq |
&=
|
bitand |
&
|
bitor |
|
|
compl |
~
|
not |
!
|
not_eq |
!=
|
or |
||
|
or_eq |
|=
|
xor |
^
|
xor_eq |
^=
|
С++
[ редактировать ]Вышеупомянутые идентификаторы являются ключевыми словами операторов на языке программирования ISO C++ и не требуют включения заголовочного файла. [ 3 ] Для единообразия стандарт C++98 предоставляет оба варианта. <iso646.h>
и соответствующий <ciso646>
. Однако они оба не имели никакого эффекта, поскольку были пусты. [ 4 ] [ 5 ] Некоторые компиляторы, такие как Microsoft Visual C++ , по крайней мере в прошлом, требовали включения заголовка, чтобы использовать эти идентификаторы, если не установлен флаг компилятора. [ 6 ] [ 7 ] Заголовок <ciso646>
устарел в C++17 и удален в C++20 , [ 8 ] пока <iso646.h>
был сохранен для совместимости с C. [ 9 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «CppCon 2017: Панельная дискуссия «Гриль комитета» » . Ютуб . Архивировано из оригинала 12 декабря 2021 г.
- ^ «Обоснование международного стандарта — языки программирования — C» (PDF) . 5.10. Апрель 2003 г. Архивировано (PDF) из оригинала 6 июня 2016 г. Проверено 17 октября 2010 г.
- ^ Страуструп, Бьярне (29 марта 1994 г.). Проектирование и эволюция C++ (1-е изд.). Издательская компания Аддисон-Уэсли . ISBN 0-201-54330-3 .
- ^ Лишнер, Рэй (2003). Коротко о C++ . О'Рейли Медиа . п. 384. ИСБН 0-596-00298-Х .
- ^ Ван Верт, Питер; Грегуар, Марк (2019). Краткий справочник по стандартной библиотеке C++17 . Апресс. п. 277. ИСБН 9781484249239 .
- ^ Дейтел, Пол; Дейтел, Харви М. (2013). C++11 для программистов . Пирсон Образование. п. 928. ИСБН 9780133439878 .
- ^ «Логический оператор И:
&&
" . Microsoft Docs . 23 ноября 2021 г. Архивировано из оригинала 28 декабря 2021 г. Проверено 27 декабря 2021 г. - ^ Уитни, Тайлер (07 декабря 2021 г.). "<ciso646>" . Microsoft Learn .
- ^ Кеппе, Томас (11 июня 2021 г.). «Уточнение статуса заголовков «С» » . Документы комитета по стандартам C++ . ISO/IEC JTC1 SC22 WG21. Архивировано из оригинала 11 января 2024 г.
Внешние ссылки
[ редактировать ]- Единая спецификация UNIX , версия 4 от The Open Group : альтернативные варианты написания — Справочник базовых определений,