ANSI-C

ANSI C er en standard utgitt av American National Standards Institute (ANSI), for programmeringsspråket C. Utviklere av C-programvare oppfordres til å følge kravene som er skissert i dokumentet for å lette kodeportabilitet .

Historien om ANSI C og ISO C

Den første publiserte standarden for C var ANSI, selv om denne standarden senere ble adoptert av International Organization for Standardization (ISO), og senere revisjoner publisert av ISO har blitt adoptert av ANSI. Begrepet ANSI C brukes oftere i industrien enn ISO C. Et mer nøytralt begrep er standard C.

C89

I 1983 opprettet American National Standards Institute en komité, X3J11, for å etablere en standardspesifikasjon for C. Etter en lang og møysommelig prosess ble standarden ferdigstilt i 1989 og ratifisert som ANSI X3.159-1989 "Programmeringsspråk C ." Denne versjonen av standarden er kjent som "ANSI C", eller også "C".

C90

I 1990 ble ANSI C-standarden (med noen mindre modifikasjoner) vedtatt av International Organization for Standardization under navnet ISO/IEC 9899:1990. Denne versjonen er kjent som C90, selv om "C89" og "C90" er, for alle praktiske formål, det samme programmeringsspråket.

C99

I mars 2000 vedtok ANSI ISO/IEC 9899:1999-standarden. Denne standarden er kjent som C99.

C11

" C11 " er den nye standarden for programmeringsspråket C.

Kompatibilitet med noen store kompilatorer

ANSI C støttes av nesten alle kompilatorer , siden mesteparten av koden skrevet i C er basert på ANSI C. Det antas at ethvert program skrevet kun i henhold til C-standarden uten noen maskinvareavhengigheter kompileres riktig i enhver plattform med en C-kompatibel Hvis disse trinnene ikke blir tatt, vil de fleste programmer kun kompilere på en bestemt plattform eller med en bestemt kompilator. For eksempel ved å bruke ikke-standardbiblioteker , for eksempel GUI - biblioteker , eller ved å stole på kompilator- eller plattformspesifikke attributter, for eksempel den nøyaktige størrelsen på visse datatyper og byte - endianness .

Hvordan oppdage kompatibilitet

For å minimere forskjellene mellom C K&R og ANSI C-standarden __STDC__, kan makroen ("c-standarden") brukes til å dele koden mellom ANSI- og K&R-seksjoner.

#if __STDC__ ekstern int getopt ( int , char * const * , const char * ); #else ekstern int getopt (); #slutt om

Det er å foretrekke å bruke " #if __STDC__" som i eksemplet ovenfor i stedet for " #ifdef __STDC__" fordi noen implementeringer kan gi en __STDC__verdi på null for å indikere at de ikke er ANSI-kompatible. " #if" vil ta seg av å erstatte med null ( 0) alle identifikatorene som ikke kunne erstattes av en makro. På denne måten, selv om __STDC__ makroen ikke er definert " #if" vil den fungere.

I eksemplet ovenfor har en prototype blitt brukt i en funksjonserklæring for ANSI-kompatible implementeringer, mens en utdatert erklæring – som ikke er en prototype – brukes annerledes. Selv om de er kompatible med C99 og C90, anbefales ikke bruk.

ANSI C-kompatible kompilatorer

Referanser

  1. [1]

Eksterne lenker

  • "ANSI Standards Action Vol. 36, #48" . American National Standards Institute. 2. desember 2005. Arkivert fra originalen 4. mars 2016. 
  • Dette verket inneholder en oversettelse hentet fra « ANSI C » av engelsk Wikipedia, nærmere bestemt denne versjonen , utgitt av utgiverne under GNU Free Documentation License og Creative Commons Attribution-ShareAlike 3.0 Unported License .