ANSI C — стандарт мови C, опублікований американським Національним інститутом стандартів (ANSI). Дотримання цього стандарту допомагає створювати легко портованіпрограми.
Перший стандарт мови C опублікував Американський інститут ANSI. Через деякий час його прийняла міжнародна організація зі стандартизації ISO, яка й продовжила випускати наступні версії стандарту, які став приймати за стандарт і інститутом ANSI. Попри це стандарт досі частіше називають ANSI C, а не ISO C.
C89
1983 року американський Національний інститут стандартів сформував комітет X3J11 для створення специфікації стандарту C. 1989 року, після тривалого і напруженого процесу, стандарт завершили і затвердили як ANSI X3.159-1989 «Мова програмування C». Саме цю версію часто називають "ANSI C", або "C89" (щоб відрізнити її від C99).
C90
1990 року, стандарт ANSI C (з невеликими змінами) прийняла міжнародна організація зі стандартизації (ISO) як ISO/IEC 9899:1990. Цю версію іноді називають C90. Однак, терміни C89 і C90 стосуються по суті однієї мови.
C11 — новий стандарт мови, прийнятий 2011 року як ISO/IEC 9899:2011. Основними оновленнями є покращена підтримка Юнікоду, поява нового ключового слова _Generic, платформна підтримка багатопотоковості (threads.h) та підтримка атомарних типів у мові та бібліотеці (stdatomic.h).
Станом на 2021 рік, C17 був поточним стандартом мови C[5].
В основному C17 коригує дефекти, виявлені в C11, не вносячи ніяких нововведень[6].
Підтримка компіляторами
ANSI C нині підтримують практично всі поширені компілятори мови C. будь-яка програма, яку написано тільки з використанням стандарту і без специфічних апаратних припущень, гарантовано повинна працювати на будь-якій платформі з достатньо стандартною реалізацією мови C.