C99
ohjelmointikieli From Wikipedia, the free encyclopedia
Remove ads
C99 (ent. C9X) on C-kielen versio, joka on ISO-standardi ISO/IEC 9899:1999 (1999).[1]
Versio laajentaa C90 (1990) ominaisuuksia. Versio on korvattu C11 (2011) versiolla.[2]
Standardissa on määritelty tukea eräissä muissa kielissä yleistyneille toiminnoille ja mm. päivitetty tietotyyppien tukea.
Standardille on julkaistu kolme korjausta:
Remove ads
Ominaisuudet
Uudessa standardissa on lisätty ja kehitetty ominaisuuksia:[1]
- inline funktioiden tuki
- uusia datatyyppejä tyyppijärjestelmään:
long long int
, boolean-tietotyyppibool
, sekäcomplex
tietotyyppi[6] restrict
-avainsana muuttujien optimointia varten- C++ tyyppiset //-alkuiset kommentit
- muuttujia ei tarvise määritellä enää lohkon alussa
- automaattisen taulukkomuuttujan varaus parametrin avulla (ns. VLA, Variable Length Array)
- makrot vaihtelevanpituisin argumentein
- uusia funktiokirjastoja
<stdbool.h>
,<complex.h>
,<tgmath.h>
,<inttypes.h>
ja funktioita kutensnprintf
- määritellyn levyiset kokonaisluvut
- parannettu tuki IEEE-liukuluvuille
- escape-koodit Unicode-merkeille
C99 vaatii toteutusta antamaan diagnostiikan kun tietotyyppinä on implisiittisesti kokonaislukutyyppi int
.[7]
Esimerkiksi ennen C99:ää voi olla:[7]
extern x;
f(y)
{
register z = g(x) + y;
return z;
}
.. jossa x
, y
ja z
käsiteltiin tyyppinä int
.[7]
Remove ads
Joustavat taulukot
C99:ssä on määritelty joustavan kokoiset taulukkojäsenet viimeisenä elementtinä struct
-tietueille, joilla on useampi kuin yksi nimetty jäsenmuuttuja. Joustavat taulukot ovat määritellään tyhjänä indeksinä, jolla viitataan muuttuvapituiseen tietoon muodossa taulukon_tunniste[]. Esimerkiksi:[8]
struct Foo {
int a;
int b[];
};
.. jossa b
on muuttuvapituinen taulukko.
Koska muuttuvapituinen taulukko on epätäydellinen tyyppi sen kokoa ei saa selville sizeof
-operaattorilla.[8]
Aiemmin on käytetty yhden elementin pituisia taulukkoja.[9] GCC-kääntäjässä on laajennus, joka tukee nolla-pituisia taulukkoja sekä se tukee C99-standardin mukaisia joustavia taulukkoja.[10] Joustavilla taulukoilla voidaan välttää tiettyjä virheitä.[11]
Remove ads
Lähteet
Aiheesta muualla
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads