Puisque tu as l'air de t'intéresser à l'embarqué, si tu programmes bas niveau, c'est à dire la couche traitant des registres du processeur, il faut parfois faire de trucs qui à priori ne servent à rien d'un point de vue algorithmique, comme lire un registre, ou un bit de regsitre pour réinitialiser la fonction qui lui correspond.Pourriez vous me donner un exemple pratique du mot clé volatile en C?
On pourrait donc trouver des lignes du genre:
où reg1 correspond à un registre et Adc.bit à un bit du registre Adc.Code:Reg1; Adc.bit
Le compilateur peut être amené à supprimer cette ligne car il n'y voit aucun intérêt, ne connaissant rien au hardware du processeur.
Autre raison, en multiprocessing, la variable pourrait être modifiée par un autre processus. Lire une variable plusieurs fois dans un processus sans en modifier le contenu pourrait amener le compilateur à ne conserver qu'une seule lecture alors qu ces lecture pourraient avoir un sens si l'autre processus venait à modifier le contenu de la variable.
Le qualificateur volatile empêche donc le compilateur de faire des optimisations sur la variable en question.
A+
PS: je vois que PA5CAL est passé par là
-----