C23 is the 2024 revision of the C standard. Two visible changes are binary integer literals and clearer rules for identifiers containing characters beyond the basic Latin alphabet. Whether a program can use a feature also depends on its toolchain’s C23 support. section 5.3 section 9.3 section 22.0
The changes appear in ordinary declarations and values:
- `0b1010` is a binary integer literal with value 10. The prefix can also be written `0B`. section 5.3
- An identifier such as `année` can use characters beyond the basic Latin alphabet. C23 specifies allowed identifiers with reference to Unicode UAX #31 and uses Normalization Form C to address equivalent character sequences. section 9.3
long année = 1990L; // Année de l'écriture de l'œuvre
The declaration uses `année` directly as an identifier, rather than spelling its accented character with a `\u` escape. TAKEAWAY: check identifier validity under C23’s Unicode rules, and check that the compiler supports the feature. section 9.3 section 22.0
Compiler support may lag the standard. A C23 conformance tracker can help identify which features a toolchain implements; do not assume that every C23 construct works in every development environment. section 22.0
