W8015 Déclarez 'type' avant de l'utiliser dans le prototype (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

(Option de la ligne de commande pour supprimer l'avertissement : -w-dpu)

Lorsqu'un prototype de fonction fait référence à un type structure non déclaré, la déclaration dans le prototype est différente de la déclaration en dehors du prototype.

Par exemple,



 int func(struct s *ps);  struct s  /* ... */ ;



Etant donné qu'il n'existe pas de "struct s" dans la portée du prototype de func, le type de paramètre ps est un pointeur sur des struct s indéfinis, et n'est pas le même que les "struct s" déclarés plus loin.

Ceci générera plus tard des avertissements et des messages d'erreur à propos de types incompatibles, ce qui serait incompréhensible sans cet avertissement.

Pour corriger le problème, vous pouvez déplacer la déclaration de "struct s" avant les prototypes y faisant référence ou ajouter la déclaration de type incomplète "struct s" avant les prototypes y faisant référence.

Si le paramètre de la fonction est une struct plutôt qu'un pointeur sur une struct, la déclaration incomplète n'est pas suffisante.

Vous devez alors placer la déclaration struct avant le prototype.