liveBook · Manning

NFC

As explained in Modern C, Third Edition

Normalization Form C is a Unicode normalization form that canonically decomposes and then recomposes character sequences into a canonical composed form.

Normalization Form C (NFC) resolves different Unicode spellings that represent the same character by canonically decomposing a sequence and then recomposing it into a canonical composed form. Thus U+00E9 and U+0065 U+0301 both normalize to U+00E9. section 9.3

Canonical recomposition

NFC maps \u00C5 → \u0041\u030A → \u00C5. It also maps the Angstrom sign \u212B through the same decomposition to the canonical character \u00C5; similarly, the Ohm sign \u2126 maps through Greek Omega \u03A9. section 9.3

For C identifiers, apply these rules:

  • Allow alphabetic letters only when they map to themselves under NFC. section 9.3
  • Prefer alphabetic letters originating directly from natural languages. section 9.3

How Modern C, Third Edition covers it

How deep it goes
Explains canonical decomposition and recomposition with equivalent characters, then stops at identifier-selection rules.
Examples
Uses é, Hangul gag, Å, the Angstrom sign, and the Ohm sign as normalization examples.
What you can do after
Evaluate/understand which Unicode letters are safe to use in C identifiers under NFC.
How it connects
Connects Unicode normalization with Unicode identifiers, canonical decomposition, canonical composition, and C identifiers.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Modern C, Third Edition. The section links point to the parts of the book it draws on.