A C99 a C programozási nyelv szabványa . Az ISO/IEC 9899:1999 szabványban meghatározott, jelenlegi verziója az ISO/IEC 9899:1999/Cor 3:2007, 2007.11.15. Ez a C90 szabvány továbbfejlesztése .
Az ANSI szabványosítási folyamat után a C nyelvi specifikáció egy ideig viszonylag változatlan maradt, míg a C++ tovább fejlődött, különösen a szabványosítása során. Az 1. szabályozási módosítás 1995 -ben új C nyelvi szabványt hozott létre , de csak a C89 szabvány egyes részleteinek javítása és a nemzetközi karakterkészletek támogatásának növelése tekintetében. A szabványt azonban az 1990-es évek végén tovább vizsgálták, ami az ISO/IEC 9899:1999 szabvány 1999-es közzétételéhez vezetett. Ezt a szabványt gyakran "C99"-nek nevezik. 2000 májusában fogadták el ANSI szabványként. A nemzetközi C szabványt az ISO/IEC JTC1/ SC22/WG14 munkacsoport tartja karban.
A C99 számos új funkcióval bővült, amelyek közül sokat már egyes fordítóprogramokban kiterjesztésként implementáltak.
A C99 többnyire visszafelé kompatibilis a C90-nel, de bizonyos esetekben merevebb is. A típusspecifikáció nélküli deklaráció már nem jelent implicit típusspecifikációt int. A C Szabványügyi Bizottság úgy döntött, hogy fontosabb lenne, hogy a fordítók észrevegyék a típusmegjelölés véletlen kihagyását, mint hogy „csendben” kezeljék a régi kódot, amely implicit típusmegjelölésen alapult int. A gyakorlatban a fordítók észlelték a kihagyást, de azt is feltételezték, hogy igen, intés folytatták a program fordítását.
A GCC és más C fordítók támogatják a C99 szabvány számos funkcióját. Hiányzik azonban a szabvány támogatása a fő fejlesztői eszközök gyártóitól, például a Microsofttól és a Borlandtól , amelyek elsősorban a C++ nyelvre koncentráltak, mivel a C++ a szabvány újításaihoz hasonló funkcionalitást biztosít.
A GCC a C99 kiterjesztett támogatása ellenére még mindig nem teljesen kompatibilis megvalósítás: egyes funkciók nincsenek implementálva, vagy hibásan működnek. [egy]
A Sun Microsystems szerint a Sun Studio 9 és újabb (amely ingyenesen letölthető) C99 tanúsítvánnyal rendelkezik UltraSPARC, Intel x86, AMD 64 processzorokhoz. [2] Szintén IBM XL C/C++ tanúsítvánnyal rendelkezik Power PC processzorokhoz. Más cégek okleveles fordítói vannak. A Ch C interpreter támogatja a C99 [3] főbb funkcióit, és szabadon elérhető Windows, Linux, Mac OS X, Solaris, QNX és FreeBSD verziókban.
__STDC_VERSION__Az értékkel definiált szabványos makró azt 199901Ljelzi, hogy elérhető a C99 támogatás. __STDC__A C90 makrójához hasonlóan a makrók __STDC_VERSION__is használhatók olyan kódok írására, amelyek a C90 és C99 fordítókon eltérően fordulnak le. Az alábbiakban egy példa látható, amely makróval __STDC_VERSION__ellenőrzi, hogy a inline kulcsszó a .
#if __STDC_VERSION__ >= 199901L /* "inline" egy kulcsszó */ #else #define inline /* semmi */ #endifA C99 szabvány ratifikálása után a szabványügyi munkacsoport egy technikai jelentést készített, amely a következő fejlesztéseket tartalmazza: továbbfejlesztett inline feldolgozás támogatása, további karakteradattípusok ( Unicode támogatása ), könyvtári funkciók továbbfejlesztett érvényesítéssel . Folytatódik a munka a tizedes lebegőpontos számokkal kapcsolatos műszaki jelentésekkel , további matematikai speciális függvényekkel és a dinamikusan lefoglalt memóriával való munkavégzéshez szükséges kiegészítő funkciókkal . A C és C++ szabványbizottságok együtt dolgoznak a többszálú programozás specifikációin.
2007-ben megkezdődött a C nyelvi szabvány új felülvizsgálatának előkészítése, amely informálisan "C1 x " néven szerepel. A C Szabványügyi Bizottság támogatta azt a stratégiát, amely korlátozza az olyan új fejlesztések bevonását, amelyeket a meglévő megvalósítások nem „tesztelnek”.
Valószínűleg a szabványos funkció , amelyet a nem biztonságosan tervezett interfészekkel kapcsolatos számos problémajelentés miatt getshivatalosan elavult , nem fog szerepelni a C nyelvi szabvány következő változatában.
C programozási nyelv | |
---|---|
Fordítók |
|
Könyvtárak | |
Sajátosságok | |
Néhány leszármazott | |
C és más nyelvek |
|
Kategória:C programozási nyelv |