./115>
Pour être plus précis,
volatile est un qualifieur qui indique au compilateur que la variable ainsi qualifiée peut à tout moment être modifiée par autre chose que ton code (par exemple des interruptions). Ça fait que le compilateur ne fera pas trop d'optimisations sur cette variable.
nstructions
}
Par exemple :volatile int i;
for(;;)
{
i=0;
// I
i pourrait être mis à 0 une fois pour toutes avant la boucle et ne plus voir sa valeur modifiée si elle n'était pas
volatile, mais comme ce n'est pas le cas, le compilateur omet cette optimisation.
En ce qui concerne le mot-clé
static, celui-ci permet de définir des variables dont l'emplacement mémoire réservé est permanent. L'initialisation est à 0 automatiquement si elle n'est pas précisée dans la déclaration (dans ce cas, l'initialisation sera faite lors du premier appel seulement). Le point important est qu'une variable statique n'est pas détruite à la fin de l'appel d'une fonction puisque son emplacement mémoire est permanent, ainsi elle conserve sa valeur d'un appel de fonction à un autre.
e à 0
printf("Appel n° %d \n",i++);
}
L'exemple type pour illustrer ceci est :void f(void)
{
static int i; // Par défaut initialisé
À chaque appel,
i sera incrémenté mais ne perdra pas sa valeur, donc
i comptera le nombre d'appels.
Voilà
Et bonne chance pour ton ému