I understand that there is both an ANSI standard and an ISO standard for C. Are there any differences between these two standards? If so, what are they? And if there is not a difference then what's the point of having two standards?
问题:
回答1:
In 1990, the ANSI C standard (with a few minor modifications) was adopted by the International Organization for Standardization as ISO/IEC 9899:1990. This version is sometimes called C90. Therefore, the terms "C89" and "C90" refer to essentially the same language.
Source, the situation is similar but reversed for C99. There is also a C FAQ entry on the matter.
The reason that there are two standards is simple: ANSI is a north-american standards body while ISO is an international one.
回答2:
Aside from the fact that new revisions will be ratified by the ISO before national standards bodies like ANSI, the two are the same. However, common incorrect usage is for "ANSI C" to mean the original language standardized by ANSI in 1989, and "ISO C", "ISO C99", or simply "C99" to mean the current standard adopted by the ISO in 1999.