Programmation en C-Variables locales et globales


Niveau:2

Introduction:

Dans cet article, nous verrons comment sont utilisées les variables locales et globales en langage C.

Variables locales:

Définition:

Les variables déclarées à l’intérieur d’une fonction ou d’un bloc sont appelées variables locales. Ils ne peuvent être utilisés que par des instructions contenues dans cette fonction ou ce bloc de code.

Les variables locales dans une fonction sont prioritaires sur les variables globales.

Notre programme:

Voici le code que nous allons détailler:

/*
	* Variable locale.c
	* 
	* Christophe Caron
	* www.caron.ws
	* 2019
	* Licence MIT
	* 
*/

#include <stdio.h>

/* declaration de la fonction*/
void addition();

int main () {
	/* declaration variable locale  */
	int a=30, b=40;
	int c;
	
	c=a+b;
	printf ("Valeur de a = %d, b = %d et c = %d dans le programme principal \n", a, b, c);
	
	addition();
	
	getchar ();
	
	return 0;
}

void addition(){
	/* declaration variable locale  */
	int a=10, b=20;
	int c;
	
	c=a+b;
	
	printf ("Valeur de a = %d, b = %d et c = %d dans la fonction addition \n", a, b, c);
}

Fichier source: variable locale.c

Explication du programme:

Dans notre programme nous réalisons une addition dans le programme principal et dans la fonction addition. Nous constatons que les résultats sont différents car les variables sont indépendantes. Ce sont des variables locales.

Exécution de notre programme:

Après avoir compiler votre programme vous pouvez le tester en l’exécutant.

Variables globales:

Définition:

Les variables globales sont définies en dehors d’une fonction, généralement en haut du programme. Les variables globales conservent leurs valeurs tout au long de la vie de votre programme et sont accessibles dans l’une des fonctions définies pour le programme.

Une variable globale est accessible à n’importe quelle fonction. C’est-à-dire qu’une variable globale est disponible pour être utilisée dans tout votre programme après sa déclaration.

Notre programme:

Voici le code que nous allons détailler:

/*
 * variable globale.c
 * 
 * Christophe Caron
 * www.caron.ws
 * 2019
 * Licence MIT
 * 
 */

#include <stdio.h>

/* declaration de la fonction*/
void addition();
/* declaration variable globale  */
int a=10, b=20;


int main () {
	
	/* declaration variable local  */
	int c;
	c=a+b;
	printf ("Valeur de a = %d, b = %d and c = %d dans le programme principal \n", a, b, c);
	
	addition();

        getchar ();
	
        return 0;
}

void addition(){
	/* declaration variable local  */
	int c;
	
	c=a+b;
	
	printf ("Valeur de a = %d, b = %d et c = %d dans la fonction addition \n", a, b, c);
	
}

Fichier source:variable globale.c

Explication du programme:

Dans notre programme nous réalisons une addition dans le programme principal et dans la fonction addition. Nous constatons que les résultats sont identiques car les variables ont la même valeur. Ce sont des variables globales.

Exécution de notre programme:

Après avoir compiler votre programme vous pouvez le tester en l’exécutant.

Initialisation des variables locales et globales:

Les variables locales ne sont pas initialisées par le système, vous devez les initialiser vous-même. Les variables globales sont automatiquement initialisées par le système comme ci-dessous:

int 0
char ‘\0’
float 0
double 0
pointer NULL

Il est recommandé d’initialiser les variables correctement, sinon votre programme pourrait produire des résultats inattendus, car les variables non initialisées prendront une valeur déjà disponible dans la mémoire.