Альтернативные токены C

Заголовок стандартной библиотеки C, предоставляющий набор альтернативных написаний общих операторов

Альтернативные токены C относятся к набору альтернативных написаний общих операторов в языке программирования C. Они реализованы как группа макроконстант в стандартной библиотеке C в iso646.hзаголовке. Токены были созданы Бьярне Страуструпом для языка C++ до стандарта [1] и были добавлены в стандарт C в поправке 1995 года к стандарту C90 через библиотеку, чтобы избежать поломки существующего кода.

Альтернативные токены позволяют программистам использовать побитовые и логические операторы языка C , которые в противном случае было бы трудно набирать на некоторых международных и не- QWERTY -клавиатурах. Имя заголовочного файла, в котором они реализованы, относится к стандарту ISO/IEC 646 , 7-битному набору символов с рядом региональных вариаций, некоторые из которых имеют акцентированные символы вместо знаков препинания, используемых операторами C.

Макросы

Заголовок 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]

Смотрите также

Ссылки

  1. ^ "CppCon 2017: Панель "Допросить Комитет"". YouTube . Архивировано из оригинала 2021-12-12.
  2. ^ "Обоснование международного стандарта - Языки программирования - C" (PDF) . 5.10. Апрель 2003. Архивировано (PDF) из оригинала 2016-06-06 . Получено 2010-10-17 .
  3. ^ Страуструп, Бьярне (1994-03-29). Проектирование и эволюция C++ (1-е изд.). Addison-Wesley Publishing Company . ISBN 0-201-54330-3.
  4. ^ Лишнер, Рэй (2003). C++ в двух словах . O'Reilly Media . стр. 384. ISBN 0-596-00298-X.
  5. ^ Ван Верт, Питер; Грегуар, Марк (2019). Краткий справочник стандартной библиотеки C++17 . Апресс. п. 277. ИСБН 9781484249239.
  6. ^ Дейтел, Пол; Дейтел, Харви М. (2013). C++11 для программистов . Pearson Education. стр. 928. ISBN 9780133439878.
  7. ^ "Логический оператор И: &&". Microsoft Docs . 2021-11-23. Архивировано из оригинала 2021-12-28 . Получено 2021-12-27 .
  8. ^ Уитни, Тайлер (2021-12-07). "<ciso646>". Microsoft Learn .
  9. ^ Кёппе, Томас (11.06.2021). «Разъяснение статуса «заголовков C»». Документы Комитета по стандартам C++ . ISO/IEC JTC1 SC22 WG21. Архивировано из оригинала 11.01.2024.
Retrieved from "https://en.wikipedia.org/w/index.php?title=C_alternative_tokens&oldid=1217901103"