Funktioner och variabler

I och med att vi börjar använda oss av flera funktioner blir det betydelsefullt var vi skriver variabeldeklarationerna. En variabel som deklareras i en funktion "existerar" enbart i denna funktion. Försöker du använda en annan funktion får du ett felmeddelande.

Man kallar variabler som deklareras inne i en funktion för lokala variabler och om de deklareras utanför funktionen för globala variabler.

Nedan har du två funktioner - "matte" och "mer_matte".

void matte()
{
int tal2;
cin>>tal2;
-
-
}

int mer_matte()
{
tal2=tal2+100; // Här skriker kompilatorn till om
- // att den inte har en aning om vad
- // tal2 är för något. Att vi redan
}// deklarerat tal2 i funktionen
// matte hjälper inte.

En lokal variabel existerar alltså bara i den funktion som den har deklarerats i. Om det i en annan funktion finns en lokal variabel med samma namn betraktas de ändå som helt skilda från varandra. Det kan liknas vid namn på människor, där flera personer kan ha samma namn.

Partiledaren Göran Persson är dock samma som statsminister Göran Persson. Eftersom människor kan dyka upp i olika sammanhang så gäller samma sak för variabler. Vi vill kanske att en och samma variabel ska existera i flera funktioner. Detta ordnar vi genom att deklarera variabeln utanför funktionen, vilket då kallas för global variabel. Du skriver då vanligtvis variabeldeklarationen i början av din källkodsfil, men efter include-avsnittet.

Var försiktig med globala variabler
Det kan verka smidigt att använda globala variabler, men du bör vara restriktiv med detta. Nackdelarna med globala variabler är: 

Nackdelarna som omnämns ovan är inte så allvarliga eftersom vi gör så små program. Det kan dock vara klokt att redan från början tillägna dig en programmeringsstil som har en restriktiv hållning till globala variabler, så slipper du "lära om" när du kommit längre och programmen blir mer omfattande.