Maison > développement back-end > C++ > Pouvez-vous modifier la signature de la fonction « principale » en C avec les qualificatifs « non signés » et « const » ?

Pouvez-vous modifier la signature de la fonction « principale » en C avec les qualificatifs « non signés » et « const » ?

Patricia Arquette
Libérer: 2024-10-29 14:01:29
original
882 Les gens l'ont consulté

Can You Modify the `main` Function Signature in C   with `unsigned` and `const` Qualifiers?

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*[]);
Copier après la connexion

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);
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal