Appendiks C. Nyt i C99

C.1. Uddrag af nyheder i ANSI revisionen fra 1999

Den følgende liste over nyheder i ANSI C omfatter både ændringer i selve C-grammatikken (syntaksregler, regler for typekonvertering, nye datatyper), af præprocessing, af krav til oversætter og krav til biblioteker (lib-filer). Desværre er jeg i skrivende stund ikke i stand til at kommentere alle punkter.

Hvad er for eksempel de nøjere regler for Variable Length Arrays, VLAs? VLA er noget, som skulle være nyttigt i forbindelse med de massive beregningsopgaver, som er en vigtig computeranvendelse i dag.

Der er dog mange ting, som kan læses ud af n897.pdf filen omtalt nedenfor. "Pointere med begrænsninger" er en pointer der peger på et objekt (som pointere jo ofte gør). Men alle referencer til dette objekt skal nu gå igennem denne pointer. Derved kan man opnå nogle optimeringer, som ellers ikke er mulige. Oversætteren kan stole på, at denne pointer ikke bliver kopieret eller "aliaset" til en eller anden variabel.

Man kan købe selve ANSI C 1999 standarden i Adobe-PDF format fra ANSI Standard Store. Næsten lige så interessant (måske endda mere interessant) er tankerne bag standarden. Dem kan man finde i dokumentet n897.pdf på http://www.open-std.org/jtc1/sc22/wg14"; teksten på linket er N897, draft rationale available.

Charteret for revisionsgruppen ligger også at hente på ovenstående adresse. Det har (selvfølgelig) været en vigtig del af charteret, at C sproget skal være så kompatibelt med C++ som muligt.

Der er sikkert nogle, som sammen med mig vil begræde, at man ikke blot kan nævne en funktion uden at skrive en prototype for at informere compileren om return type og parametertyper. Men det er nu ikke så slemt endda; der vil i mange år endnu være en switch som tillader ANSI-89 reglerne.

De vigtigste ændringer er:

I bedste open doc stil efterlyser jeg bidrag til uddybelse af disse punkter.

Listen er hentet via http://www.ansi.org. Også her http://www.dkuug.dk/JTC1/SC22/WG14 kan man finde oplysninger. Men links har det med at blive gamle. Brug eventuelt www.google.com til at finde nye links til ANSI-C standard.