Стандартизація мови C

Перший стандарт мови C був опублікований ANSI. Через деякий час він був прийнятий організацією ISO, яка продовжила випускати наступні версії стандарту, що стали прийматися як стандарт і ANSI. Незважаючи на це, стандарт називають ANSI C, а не ISO C. Етапи стандартизації:

ü C89. У 1983 році ANSI сформував комітет X3J11 для створення специфікації стандарту C. У 1989 році, після тривалого і напруженого обговорення, стандарт був завершений і затверджений як ANSI X3.159-1989 «Мова програмування C». Саме цю версію часто називають ANSI C, або C89 (щоб відрізнити її від C99).

ü С90. У 1990 році, стандарт ANSI C (з невеликими змінами) був прийнятий організацією ISO як ISO/IEC 9899:1990. Цю версію називають C90. Терміни C89 і C90 належать, по суті, до однієї мови.

ü C99. У березні 2000 року ANSI прийняв стандарт ISO/IEC 9899:1999. Цей стандарт зазвичай називають C99.

ANSI C99 на сьогоднішній день підтримується всіма поширеними компіляторами мови C. Будь-яка програма, написана тільки з використаннім стандарту і не включає специфічних апаратних особливостей, гарантовано повинна працювати на будь-якій платформі зі стандартною реалізацією мови ANSI C99.

ü C11. Організація ISO 8-го грудня 2011 року опублікувала оновлений варіант стандарту для мови C – ISO/IEC 9899:2011, що прийшов на зміну C99. Сучасні компілятори (GCC 4.6, LLVM 3.0) вже підтримують більшість описаних у специфікації можливостей. У новій специфікації збільшена сумісність з мовою C++ і представлені деякі нові можливості, такі як:

o Підтримка багатопоточності;

o Вилучена функція gets;

o Інтерфейс для перевірки допустимих меж і діапазонів значень;

o Анонімні структури та об’єднання (наприклад, можна вкласти блок union в struct);

o Додаткові макроси для перевірки чисел з плаваючою точкою.

Це і є сучасний стандарт мови програмування ANSI C.