Instruction nulleEn programmation informatique, une instruction nulle (ou instruction vide) est une instruction particulière, qui dicte à l'ordinateur de n'effectuer aucune action. L'instruction nulle, implémentée dans le jeu d'instructions de beaucoup de processeurs a pour seul effet d'incrémenter le compteur ordinal. Elle est donc ignorée par le processeur, qui passe à l'instruction suivante. Elle est symbolisée en assembleur par le mnémonique NOP. En Pascal, l'instruction nulle est l'instruction qui n'est constituée d'aucun symbole. C'est une instruction vide. Par exemple, comme les instructions sont séparées par des points-virgules, deux points-virgules successifs délimitent en fait une instruction nulle. Une instruction nulle est fréquemment ajoutée (souvent inconsciemment) à la fin d'une séquence d'instructions dans un bloc Un point-virgule mal placé peut provoquer une confusion : while n > 0 do ;
begin
n := n - 1 ;
f := f * n ;
end
Dans cet exemple, le point-virgule ajouté par mégarde après Contrairement à l'exemple précédent, il peut être utile de mettre une instruction nulle dans une boucle pour attendre qu'une condition se réalise avant de continuer l'exécution : repeat until KeyPressed
ou while not KeyPressed do
Mais si l'on veut faire suivre la boucle ci-dessus d'une instruction, il ne faudra pas oublier d'ajouter un point-virgule. Le compilateur détectera l'oubli dans le premier cas, mais dans le deuxième, il considérera l'instruction suivante comme faisant partie de la boucle. Le code suivant est un exemple d'instruction simple en C qui se comporte comme une instruction nulle. i+1;
Cette instruction effectue une addition et ignore le résultat. En fait, toute instruction n'ayant pas d'effet de bord (et qui n'affecte pas le flux de contrôle comme La véritable instruction nulle en C est l'instruction la plus simple possible. Elle est constituée d'un simple point-virgule et peut être mise à tout emplacement où une instruction est requise. ;
Une autre solution, peut-être plus lisible, est d'utiliser un bloc vide : {}
Dans certains cas, tels que le corps d'une fonction, un bloc est obligatoire mais il peut être vide. L'instruction nulle est inutile en elle-même, mais elle peut être d'une utilité syntaxique dans un contexte plus large, par exemple celui d'une boucle : while (getchar() != '\n')
;
ou de façon plus concise : while (getchar() != '\n');
cependant cette manière d'écrire peut prêter à confusion car le point-virgule peut souvent ne pas être remarqué. Autre solution possible, peut-être plus lisible : while (getchar() != '\n') {}
Le code ci-dessus répète l'appel à la fonction getchar() jusqu'à ce qu'elle retourne un caractère Remarque : En pratique, la plupart des compilateurs C ne génèrent pas de code machine pour une instruction nulle, pas même un Autres langages
Notes et références
Voir aussiArticles connexes
|