Predefined Boolean constants (since C23)

From cppreference.com
< c‎ | language

Syntax

true (1) (since C23)
false (2) (since C23)

Explanation

Keywords true and false represent predefined constants. They are non-lvalues of type bool.

Notes

See integral conversions for implicit conversions from bool to other types and boolean conversions for the implicit conversions from other types to bool.

Until C23, true and false were implemented as macros provided in <stdbool.h>. An implementation may also define bool, true, and false as predefined macros in C23 for compatibility.

Example

#include <assert.h>
 
int main()
{
    assert(true == 1 && 0 == false);
}

References

  • C23 standard (ISO/IEC 9899:2024):
  • 6.4.4.6 Predefined constants (p: 66)

See also

C++ documentation for Boolean literals