BETA SAÚDE
C alternative tokens
Texto da Wikipédia (en), licença CC BY-SA. O BETARUBI mostra o verbete inteiro nesta página — a leitura não continua fora do site.
| C standard library (libc) |
|---|
| General topics |
| Miscellaneous headers |
C alternative tokens refer to a set of alternative spellings of common operators in the C programming language. They are implemented as a group of macro constants in the C standard library in the <iso646.h> header. The tokens were created by Bjarne Stroustrup for the pre-standard C++ language[1] and were added to the C standard in a 1995 amendment to the C90 standard via library to avoid the breakage of existing code.
The alternative tokens allow programmers to use C language bitwise and logical operators which could otherwise be hard to type on some international and non-QWERTY keyboards. The name of the header file they are implemented in refers to the ISO/IEC 646 standard, a 7-bit character set with a number of regional variations, some of which have accented characters in place of the punctuation marks used by C operators.
The macros
The <iso646.h> header defines the following 11 macros as stated below:[2]
| Macro | Defined as |
|---|---|
and | && |
and_eq | &= |
bitand | & |
bitor | | |
compl | ~ |
not | ! |
not_eq | != |
or | || |
or_eq | |= |
xor | ^ |
xor_eq | ^= |
C++
The above-mentioned identifiers are operator keywords in the ISO C++ programming language and do not require the inclusion of a header file.[3] For consistency, the C++98 standard provided both <iso646.h> and a corresponding <ciso646>. However they both had no effect, being empty.[4][5] Some compilers, such as Microsoft Visual C++ have, at least in the past, required the header to be included in order to use these identifiers unless a compiler flag is set.[6][7] The header <ciso646> was deprecated in C++17, and removed in C++20,[8] while <iso646.h> was retained for compatibility with C.[9]
See also
References
- ↑ "CppCon 2017: Panel "Grill the Committee"". YouTube. Archived from the original on 2021-12-12.
- ↑ "Rationale for International Standard - Programming Languages - C" (PDF). 5.10. April 2003. Archived (PDF) from the original on 2016-06-06. Retrieved 2010-10-17.
- ↑ "},"edition":{"wt":"1st"},"date":{"wt":"1994-03-29"},"isbn":{"wt":"0-201-54330-3"}},"i":0}}]}'/>Stroustrup, Bjarne (1994-03-29). Design and Evolution of C++ (1st ed.). Addison-Wesley Publishing Company. ISBN 0-201-54330-3.
- ↑ Lischner, Ray (2003). C++ in a Nutshell. O'Reilly Media. p. 384. ISBN 0-596-00298-X.
- ↑ Van Weert, Peter; Gregoire, Marc (2019). C++17 Standard Library Quick Reference. Apress. p. 277. ISBN 9781484249239.
- ↑ Deitel, Paul; Deitel, Harvey M. (2013). C++11 for Programmers. Pearson Education. p. 928. ISBN 9780133439878.
- ↑ &&</code>"},"url":{"wt":"https://docs.microsoft.com/en-us/cpp/cpp/logical-and-operator-amp-amp?view=msvc-170#operator-keyword-for-"},"url-status":{"wt":"live"},"access-date":{"wt":"2021-12-27"},"website":{"wt":"Microsoft Docs"},"archive-url":{"wt":"https://web.archive.org/web/20211228013621/https://docs.microsoft.com/en-us/cpp/cpp/logical-and-operator-amp-amp?view=msvc-170"},"archive-date":{"wt":"2021-12-28"}},"i":0}}]}'/>"Logical AND Operator:
&&". Microsoft Docs. 2021-11-23. Archived from the original on 2021-12-28. Retrieved 2021-12-27. - ↑ "},"date":{"wt":"2021-12-07"},"first1":{"wt":"Tyler"},"last1":{"wt":"Whitney"},"url":{"wt":"https://learn.microsoft.com/en-us/cpp/standard-library/ciso646"},"website":{"wt":"Microsoft Learn"}},"i":0}}]}'/>Whitney, Tyler (2021-12-07). "<ciso646>". Microsoft Learn.
- ↑ Köppe, Thomas (2021-06-11). "Clarifying the status of the "C headers"". C++ Standards Committee Papers. ISO/IEC JTC1 SC22 WG21. Archived from the original on 2024-01-11.
External links
- : alternative spellings – Base Definitions Reference, The Single UNIX Specification, Version 5 from The Open Group
