Maison >développement back-end >C++ >Pourquoi ma fonction C non nulle ne renvoyant aucune valeur ne produit-elle pas une erreur du compilateur ?
Question :
Ce code C ci-dessous a un fonction non vide qui ne renvoie pas de valeur :
static tvec4 Min(const tvec4& a, const tvec4& b, tvec4& out) { tvec3::Min(a,b,out); out.w = min(a.w,b.w); }
Pourquoi compile-t-il sans erreur ?
Réponse :
Ce comportement n'est pas défini selon le projet de norme C 11, section 6.6.3, paragraphe 2, qui stipule que s'écoulant de la fin d'une valeur -le retour de la fonction entraîne un comportement indéfini.
Avertissements du compilateur et Erreurs :
Implications :
Un comportement non défini peut conduire à des résultats imprévisibles, y compris des plantages de programmes. Il est recommandé d'utiliser des options du compilateur telles que -Wall et -Wextra pour détecter et corriger les instances de comportement non défini.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!