The iso646.h header file in the C standard library isn’t found in many texts on C. It was added to the standard library in 1995 as an amendment to the C90 standard. It is one of the more basic library header files, allowing for (1) international non-QWERTY keyboards to more easily write C without digraphs and trigraphs, and (2) bitwise and logical operators in more natural language. The only job of the header is to convert macros (on the left in the below table) to C tokens (on the right).

and && and_eq &= bitand & bitor | compl ~ not ! not_eq != or || or_eq |= xor ^ xor_eq ^=

Interestingly, these are all operator keywords in C++. There is a ciso646 header for C++ which may be included for consistency, yet it has no effect because it is empty.

Posted in C