Exemples de code violant des normes

Exemples de code violant des normes

Le respect des normes de programmation est une contrainte dans les langages informatiques. Certains programmes ne respectant pas ces normes peuvent avoir un comportement correct parfois mais incorrect dans d'autres cas.

Si on considère le cas du C la norme spécifie deux types de comportements suivant les violations envisagées :

  • comportement non spécifié : La norme décrit les comportements possibles sans spécifier lequel sera utilisé (unspecified behavior en anglais).
  • comportement indéterminé : aucune spécification, le compilateur et l'environnement d'exécution sont libres d'imposer un comportement y compris d'avoir un comportement aléatoire (undefined behavior en anglais).

Utiliser un comportement non spécifié dans un programme est possible si :

  • La mise en œuvre de la norme spécifie dans sa documentation quel comportement sera utilisé.
  • l'auteur du programme décide qu'il ne sera utilisé qu'avec cette mise en œuvre précise de la norme.

Évidemment dans ce cas le programme considéré ne sera pas portable dans d'autres environnements.

Code ayant un comportement non spécifié en C

#include <stdio.h>
int main(void)
{
      int a = 0;
      printf("%d %d\n", a, ++a);
      return 0;
}

L'ordre d'évaluation des paramètres lors d'un appel de fonction n'est pas spécifié dans la norme décrivant le langage C, aussi le compilateur peut évaluer ce fragment de code de plusieurs façons différentes. Par exemple :

int j = a;
int k = j + 1;
printf("%d %d\n", j, k);

affichera :

0 1

ou bien :

int j = a + 1;
int k = j;
printf("%d %d\n", j, k);

affichera :

1 1

Code ayant un comportement indéterminé en C

int main(void)
{
      double a;
      double * pa = &a;
      float * c;
      c = (float *)pa;
      return 0;
}

La conversion entre deux pointeurs vers des types qui possèdent des conditions d'alignements potentiellement différents produit un résultat indéterminé en C.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Exemples de code violant des normes de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Exemples De Code Violant Des Normes — Le respect des normes de programmation est une contrainte dans les langages informatiques. Certains programmes ne respectant pas ces normes peuvent avoir un comportement correct parfois mais incorrect dans d autres cas. Si on considère le cas du… …   Wikipédia en Français

  • Chatiment suprême — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Condamnation à mort — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Condamné à mort — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Débat sur la peine de mort — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Histoire de la peine de mort — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • La peine de mort — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Peine capitale — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Sentence capitale — Peine de mort Application de la peine de mort dans le monde      Abolie pour tous les crimes …   Wikipédia en Français

  • Peine de mort — Application de la peine de mort dans le monde      Abolie pour tous les crimes      Ab …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”