FAQ
Is this site official?
Yes indeed, it was greenlighted by unanimous consent after review of document N3408 during 72nd meeting of ISO/IEC JTC1/SC22/WG14.
What is "lingua franca"?
It is a language widely used for communication among people who do not share a native language. It serves as a bridge for understanding and can significantly shape cultural and linguistic landscapes. Examples of natural languages that have fulfilled this role include Latin in medieval Europe, Chinese in East Asia, or English in contemporary global communication. Similarly, in the realm of programming, C has inspired many other languages and is the most common target for Foreign Function Interfaces, establishing it as a lingua franca in the world of software development.
What is the correct C logo?
Traditionally, the logo of the C language is uppercase letter 'C' in font Helvetica of weight black. Typically colored in shades of blue and grey, such as Hit Grey, Cadet Grey, or LightSteelBlue.
The instance of the logo you see on this website was uploaded to Wikimedia by Cobaiahackers on .
Is this FAQ not missing content?
Yes and no.
There already are great FAQ lists driven by the community (see resources). The committee also has Change and Clarification Requests documents.
This FAQ, rather than being a language reference, aims to answer simple questions that don't really fit anywhere else.
Is C++ a superset of C?
Not exactly; C++ is a fork of C.
To be more precise, it forked around K&R C,
had C89, C90, and C95 merged almost fully, and truly began to diverge
from "mainline" with C99 and C++98 onward.
That being said, it was never a strict superset, as there has always
been valid C code that would be invalid or behave differently in C++.
- C xor C++ Programming (WG14: N3065; WG21: P2735R0)
- C++ is not a superset of C
- C++ is a superset of only a subset of C
- Incompatibilities Between ISO C and ISO C++
- Compatibility of C and C++ - Wikipedia
- How C is not a subset of C++
- Where is C not a subset of C++? - Stack Overflow
- Does C++ contain the entire C language? - Stack Overflow
- N4860 (draft of C++20); Annex C (Compatibility), §C.5 (C++ and ISO C)
- C++ is NOT a superset of C: tentative definitions, implicit conversions, implicit declarations &more
- The C++ Programming Language, Special Edition; Appendix B - Compatibility
- mono/mono#10085 - C/C++ incompatibilities
What is C18?
"C18" is a misnomer caused by the late publication of the C17 making the name of ISO publication ISO/IEC 9899:2018.
Similarly, ISO/IEC 9899:2024 should be referred to as "C23".
Shouldn't C95 be "C94"?
There are even documents referring to it as "C93", but it seems like the community settled on "C95".
What is the naming schema for C versions?
As per the multiple agreements during committee meetings, as well as discussions on mailing list, the names of each revision are not directly derived from the name of the ISO document specifying them, nor from the year it was published, nor even necessarily from the year the work on them was finalized.
That being said, the names do follow the convention of "C" followed by last two digits of a year the document was sent for pre-publication review(s).