ANSI C

ANSI C on ANSI-standardi C-kielelle.

ANSI C korvasi aiemman K&R C -version, joka syntyi Brian Kernighanin ja Dennis Ritchien toimesta ennen varsinaista standardia. Kernighan ja Ritchie julkaisivat vuonna 1978 kirjan The C Programming Language, jossa K&R-versio kielestä oli approksimaatio standardille, mutta tarve muodolliselle standardille oli ilmeinen vuonna 1982. Vuonna 1982 käytössä ollut versio ei ollut sama kuin kirjassa kuvattu ja eri kääntäjissä ei ollut mukana uusimpia muutoksia. K&R ei ollut myöskään riittävän tarkka monissa kielen yksityiskohdissa. Myöskään Stephen Johnsonin Portable C Compiler ei enää ollut sopiva referenssikääntäjänä.
Myös kielen käyttö projekteissa, joita koskivat kaupalliset ja valtion hallinon sopimukset aiheutti paineita standardin muodostamiselle.
Vuonna 1983 ANSI perusti X3J11-komitean stadardoimaan C-kieli. 
ANSI X3.159-1989 -standardi hyväksyttiin 14. joulukuuta 1989 ja julkaistiin keväällä 1990. ANSI-standardi korvattiin kansainvälisellä ISO-standardina (ISO C) nimellä ISO/IEC 9899:1990, joka oli ISO/IEC JTC 1 -ryhmän työtä. Standardit erotetaan myös nimillä C89 ja C90.

X/Open käyttää standardointia edeltävästä versiosta tietyissä yhteyksissä termiä X/Open C.

Myöhemmin standardista on julkaistu useita pävitysversioita:
 ISO/IEC 9899:1990/Amd 1:1995, Amendment 1 (C95)
 ISO/IEC 9899:1990/Cor 1:1994
 ISO/IEC 9899:1990/Cor 2:1996
 ISO/IEC 9899:1999, C99
 ISO/IEC 9899:1999/Cor 1:2001
 ISO/IEC 9899:1999/Cor 2:2004
 ISO/IEC 9899:1999/Cor 3:2007
 ISO/IEC 9899:2011, C11
 ISO/IEC 9899:2011/Cor 1:2012
 ISO/IEC 9899:2018, C18
 tuleva versio on C23 (ISO/IEC CD 9899)

Muutokset aiempaan 
ANSI C -versiossa on useita eroja K&R C -versioon, joita ovat esimerkiksi funktioiden prototyyppien käsittelyssä, esikääntäjän toiminnan määrittelyssä ja uudet avainsanat. Yhteenveto K&R ja ANSI -versioiden eroista on lueteltu The C Programming Language -kirjan toisessa painoksessa (Second Edition, 1988). Standardissa C-kieleen on otettu eräitä vaikutteita C++-kielestä (muun muassa const-käyttö ja prototyyppien käsittely).

Lähteet 

C