ANSI C
ANSI C, egentligen ANSI X3.159-1989 och ofta kallad C89, är en specifikation för programspråket C som antogs som standard av ANSI 1989. Samma standard antogs praktiskt taget omodifierad av ISO som ISO/IEC 9899:1990, även kallad C90. C89 och C90 syftar alltså på samma standard.
Under slutet av 1970-talet och början av 1980-talet skrevs C-kompilatorer för ett stort antal mainframedatorer, minidatorer och mikrodatorer. Dessa var inte alltid kompatibla med varandra. 1983 skapade ANSI en kommitté kallad X3J11 med målet att skapa en specifikation för C. Den blev ratificerad 1989 som ANSI X3.159-1989 "Programming Language C".
Den enda egentliga standard för C som fanns före ANSI C var den som beskrevs i Brian Kernighan och Dennis M. Ritchies bok The C Programming Language, som kom att kallas för K&R C. Under 1970- och 1980-talen utvecklade olika kompilatorer egna utökningar till språket. ANSI C inkluderar många av dessa utökningar. Dessutom lades några nya egenskaper till, bland annat funktionsprototyper och void-pekare. Vissa förbättringar kom från C++. I samband med detta infördes krav på att kompilatorn skulle kontrollera typerna på parametrar till funktioner. Innan ANSI C gjordes detta inte (externa funktioner deklarerades int my_func();
).
Redan under arbetet med att anta ANSI C som ISO-standard lades nya förslag fram på utökningar och förbättringar. Eftersom behovet av en färdig standard var trängande togs dessa förslag inte upp för behandling. I stället behandlades de separat och samlades i ett tillägg som lades fram i september 1994 och antogs året därpå som ISO/IEC 9899:1990/Amd 1:1995. Detta tillägg kallas Normative Addendum 1, Amendment 1 eller C95. 1999 antog ISO en ny version av C-standarden: ISO/IEC 9899:1999, informellt kallad C99.