Modificateurs de signature de fonction principale C : comprendre Unsigned et Const
La norme du langage C définit la fonction principale avec deux signatures valides :
int main(); int main(int, char*[]);
Cependant, la question se pose : les modifications de ces signatures, comme l'ajout de qualificatifs unsigned et const, sont-elles autorisées dans le cadre de la norme C ?
La norme C 98, à la section 3.6.1 paragraphe 2 , indique explicitement que main ne peut pas être surchargé. Il définit également le type de retour de main comme int, sa définition complète de type dépendant de l'implémentation. Toutes les implémentations doivent prendre en charge les deux signatures prédéfinies listées ci-dessus.
Cependant, la norme n'interdit notamment pas l'implémentation d'un environnement acceptant une fonction principale avec des qualificatifs supplémentaires. Cela signifie que même si cela n'est pas obligatoire par la norme, il est permis dans certains environnements d'étendre les signatures autorisées de main.
Plus précisément, ajouter des qualificatifs const et non signés aux arguments de la signature de main, comme dans ce qui suit exemple, peut être pris en charge dans certaines implémentations :
int main(const unsigned int, const char* const* argv);
Par conséquent, bien que cela ne soit pas universellement garanti par la norme, il est possible que certains compilateurs autorisent de telles modifications. Cependant, il est crucial de noter que ce comportement dépend de l'implémentation et ne doit pas être invoqué pour un code conforme aux normes.
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!