Namespaces
Variants

Predefined Boolean constants (since C23)

From cppreference.net

Contents

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