Skip to main content


ciso646.h is a header file in the C programming language that provides macros for alternative spellings of certain operators. The name "ciso646" stands for "C International Standard 646", which is a standard that defines the character sets and collating sequences used in international communications.

The macros provided by ciso646.h include:

  • and
  • and_eq
  • bitand
  • bitor
  • compl
  • not
  • not_eq
  • or
  • or_eq
  • xor
  • xor_eq

These macros can be used as alternatives to the corresponding C operators, such as && for "and" and || for "or". The purpose of providing these alternative spellings is to make the code more readable and portable across different platforms, where different character sets and collating sequences may be used. However, these macros are rarely used in modern C programming, as most compilers and platforms now support the standard C operators.



int main()
	int a = 5, b = 7, c = 3;
	if (a < b and b > c)
		printf("The value of b is greater than both a and c.\n");
	int x = 5;
	int y = 3;
	if (x bitand y)
		printf("x AND y is true\n");
	if (x bitor y)
		printf("x OR y is true\n");
	if (not(x == y))
		printf("x NOT EQUALS y is true\n");
	if (x xor y)
		printf("x XOR y is true\n");
	return 0;


The value of b is greater than both a and c.
x AND y is true
x OR y is true
x NOT EQUALS y is true
x XOR y is true


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment