Programmering i ANSI-C


Nyckelord

redigera

Tabellen nedan listar samtliga nyckelord som ingår i ANSI-C standarden. På den här sidan är det tänkt att dessa skall beskrivas.

Nyckleord i bokstavsordning :
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, siezof, static, struct, switch, typedef, union, unsigned, void, volatile, while.

auto anger att antingen en minnecell eller ett processorregister skall användas för att lagra en parameter. auto kan endast användas vid variabeldeklarationer inuti funktioner, inte externt. Funktionen är den att om det finns ett ledigt processorregister att tillgå så kommer kompilatorn att välja det alternativet då det är betydligt effektivare att hämta värdet internt i processorn än att hämta det från datorns RAM. Om inte lagringstypen anges så antas den automatiskt vara av typen auto. Alternativet är lagringstypen register (se nedan).

/* Deklaration med "auto" */

auto int x;  /* lagra i minne eller register */
int y;       /* har samma effekt */

break avryter en slinga (do, for, while) Används om ett villkorstest har uppfyllts (är SANT) och kommer då att abvryta slingan. break används även för att avbryta en switch sats, se villkorssatser för ett exempel på användning av break, case, default i en switch sats.

/* Avbrott av en slinga med "break" */

int x;

for ( x = 0 ; x < 100 ; x++ )
{
    if ( FELKOD == funktionsanrop ( x ) )
        break;

    kod som utförs om villkoret inte uppfylls
}

for slingan ovan kommer att upprepas så länge "x" är mindre än 100, (som initieras till 0), är lika med 100 men avbryts om "funktionsanrop" retunerar en "FELKOD". (se även "for" nedan samt felhantering).

case används för att ange ett villkor i en switch sats. I dessa satser kan ett stort antal villkor listas med olika case satser. Se villkorssatser för ett exempel på användning av break, case, default i en switch sats.

continue

redigera

Detta nyckelord kan användas för att hoppa till nästa varv i en loop.

for (i = 0; i < MAX; i++) 
{
   if (i != 10) {
      continue;
   }
   
   /* Om vi hamnat här är i == 10 */
} 

continue kan alltså, användas för att undvika att för alltför indenterad kod.

default

redigera

Används i 'switch-satser och bör alltid finnas med i dessa för att fånga upp felaktigheter och alla oväntade resultat.

switch (i)
{
   case GOOD:
      kod
      break;
   default:
      /* Ett fel har inträffat */
      break;
}

register

redigera

typedef

redigera

unsigned

redigera

volatile

redigera