C99C99 — стандарт мови програмування Сі. Визначений в ISO/IEC 9899:1999, сучасна версія — ISO/IEC 9899:1999/Cor 3: 2007 від 2007-11-15. Є розвитком стандарту C90. ІсторіяПісля процесу стандартизації ANSI специфікація мови Сі деякий час залишалася відносно незмінною, тоді як C++ продовжувала розвиватися, особливо під час її стандартизації. Нормативна поправка 1 створила новий стандарт мови Сі 1995 року, але тільки з точки зору виправлення деяких деталей стандарту C89 і додання розширеної підтримки інтернаціональних наборів символів. Проте, стандарт зазнав подальших змін у кінці 1990-х, що призвело до опублікування 1999 року стандарту ISO/IEC 9899:1999. Цей стандарт часто згадуюєть як «C99». ANSI прийняв його як стандарт у травні 2000 року. Міжнародний стандарт C підтримує робоча група ISO/IEC JTC1/SC22/WG14. Нові можливостіУ C99 додано кілька нових можливостей, багато з яких уже були реалізовані як розширення в деяких компіляторах.
Зворотна сумісність із C90C99 є переважно сумісним зі C90, але в деяких випадках є жорсткішим. Зокрема, оголошення без зазначення типу більше не має на увазі неявного задання типу Підтримка поширеними компіляторамиGCC та інші компілятори мови Сі підтримують багато нововведень стандарту C99. Проте, відчувається недостатня підтримка стандарту з боку великих виробників засобів розробки, таких як Microsoft і Borland, які зосередилися, переважно, на мові C++, оскільки C++ забезпечує функціональність, схожу до нововведень стандарту. GCC, попри його розширену підтримку C99, все ще є не повністю сумісною реалізацією: деякі особливості не реалізовано або працюють некоректно[1]. Згідно з Sun Microsystems, пакунок Sun Studio 9 і вище (доступний для вільного завантаження) сертифікований під стандарт C99, для процесорів UltraSPARC, Intel x86, AMD 64[2]. Також сертифікована IBM XL C/C++ для процесорів Power PC. Існують сертифіковані транслятори інших фірм. Інтерпретатор мови Сі Ch[en] підтримує основні особливості C99[3] і доступний у версіях для Windows, Linux, Mac OS X, Solaris, QNX і FreeBSD. Визначення версії
Стандартний макрос #if __STDC_VERSION__ >= 199901L
/* "inline" is a keyword */
#else
#define inline /* nothing */
#endif
Напрями розвитку стандартуПісля ратифікації стандарту C99 робоча група зі стандартизації підготувала технічний звіт, що містить такі покращення: покращена підтримка вбудованої обробки, додаткові символьні типи даних (підтримка Юнікоду), бібліотечні функції з покращеною перевіркою допустимих значень. Продовжується робота і над технічними звітами, пов'язаними з десятковими числами з рухомою комою, додатковими математичними спеціальними функціями та додатковими функціями для роботи з динамічно розподілюваною пам'яттю. Комітети зі стандартизації Сі та C++ спільно працюють над специфікаціями для багатониткового програмування. 2007 року розпочалася робота над заготовкою нової ревізії стандарту мови Сі, неофіційно званої «C1x». Комітет зі стандартизації мови Сі підтримав стратегію, яка має обмежити включення нових напрацювань, не обкатаних наявними реалізаціями. Найпевніше, стандартну функцію Див. також
Примітки
Посилання |