__declspec(noreturn)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Catégorie

Modificateurs, Extensions des mots clés, Spécificateurs de classe de stockage

Syntaxe

__declspec( noreturn ) declarator

Cet attribut __declspec indique au compilateur qu'une fonction ne revient pas. Par conséquent, le compilateur sait que le code suivant un appel à une fonction __declspec(noreturn) ne peut être atteint.

Si le compilateur trouve une fonction ayant un chemin de contrôle qui ne renvoie pas de valeur, il génère un avertissement. Si le chemin de contrôle ne peut être atteint en raison d'une fonction qui ne revient pas, vous pouvez utiliser __declspec(noreturn) pour éviter cet avertissement ou cette erreur.

Exemple

Considérez le code suivant. La clause else ne contient pas d'instruction return, aussi le programmeur déclare-t-il fatal comme __declspec(noreturn) pour éviter un message d'erreur ou d'avertissement.

__declspec(noreturn) extern void fatal ()
{
   // Code omis
}
int foo()
{
   if(...)
      return 1;
   else if(...)
      return 0;
   else
      fatal();
}

Voir aussi