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 iso646.h header defines the following 11 macros as stated below:[2] The above-mentioned identifiers are operator keywords in the ISO C++ programming language and do not require the inclusion of a header file.