16

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?

Zero Piraeus
  • 56,143
  • 27
  • 150
  • 160
Earlz
  • 62,085
  • 98
  • 303
  • 499

2 Answers2

12

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.

Georg Fritzsche
  • 97,545
  • 26
  • 194
  • 236
  • 3
    Add then the timeline is the opposite way around with C99 which became a ISO standard in 1999 and an ANSI standard in 2000. The important thing to look at when talking about C standards is the year. :) "ANSI C" or "ISO C" usually refer to C89; when people mean C99 they usually say so. – Fabian Giesen Nov 20 '10 at 09:55
6

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.

R.. GitHub STOP HELPING ICE
  • 208,859
  • 35
  • 376
  • 711