Apprendre le Langage C

Procédure

Définition :

Une procédure est un ensemble d'instructions portant un nom. Pour définir une procédure, on utilise la syntaxe :

void	 nomprocedure( )
{
	/* Déclarations de variables ... */
	/* Instructions ... */
}
			

Une procédure est une fonction renvoyant void, dans ce cas return est appelé sans paramètre.Une procédure est une nouvelle instruction, il suffit pour l'exécuter d'utiliser son nom. Par exemple, pour exécuter (on dit aussi appeler ou invoquer) une procédure appelée proc , il suffit d'écrire proc();.

Exemple :

Les deux programmes suivants font la même chose. Le premier est écrit sans procédure :

#include <stdio.h>
int main ( )
{
	printf("Bonjour \n");
	return 0 ;
}
			

Et dans le deuxième, le printf est placé dans la procédure disBonjour et cette procédure est appelée depuis le main.

#include <stdio.h>
void  disBonjour()
{
	printf("Bonjour \n");
}
int main()
{
	disBonjour();
	return 0 ;
}
			

À noter :

On peut définir autant de procédures que nous le voulons et nous pouvons appeler des procédures depuis des procédures, comme nous allons voir dans l'exemple suivant :

#include <stdio.h>
void  disBonjour()
{
	printf("Bonjour ! \n");
}
void perroquet()
{
	printf("Je suis un perroquet qui dit :");
	disBonjour();
}
int main()
{
	perroquet();
	return 0 ;
}
			

Une procédure est un bloc d'instructions et est sujette aux mêmes régles que main. Il donc possible de déclarer des variables :

void	 nomprocedure( )
{
	/* Déclarations de variables ... */
	/* Instructions ... */
}
			

Attention, ces variables ne sont accessibles que dans le corps de la procédure, cela signifie qu'elle naissent au moment de leur déclaration et qu'elles sont détruites une fois la dernière instruction de la procédure exécutée. C'est pour cela qu'on les apelle des variables locales. Une variable locale n'est visible qu'entre sa déclaration et l'accolade fermant la procédure.
Ce petit exemple illustre l'exemple de ce qu'il ne faut jamais faire.

#include <stdio.h>
void	incremente(int a)
{
	int c;
	c = ++a;
} //destruction de la variable c.
int main()
{
	int nombre;
	printf("Donnez un nombre");
	scanf("%d",&nombre);
	incremente(nombre);
	printf("%nombre + 1 = %d",nombre,c);
	return 0;
}