Maison > développement back-end > C++ > Le type de retour fait-il partie d'une signature de fonction C ?

Le type de retour fait-il partie d'une signature de fonction C ?

Barbara Streisand
Libérer: 2024-12-06 06:07:10
original
695 Les gens l'ont consulté

Is the Return Type Part of a C   Function Signature?

Type de retour et signature de fonction en C

En C , le type de retour d'une fonction n'est pas considéré comme faisant partie de sa signature pour les fonctions ordinaires , c'est-à-dire des fonctions qui ne sont pas des spécialisations de modèles de fonctions. Cela signifie que les fonctions portant le même nom et les mêmes types de paramètres peuvent être surchargées, même si elles ont des types de retour différents.

Signature des spécialisations des modèles de fonctions

Cependant, pour les fonctions Spécialisations de modèles, le type de retour est inclus dans la signature. En effet, la signature d'une spécialisation de modèle de fonction inclut la signature du modèle lui-même, ainsi que son type de retour et sa liste de paramètres de modèle.

Pourquoi ne fait-il pas partie de la signature de fonction ?

La raison pour laquelle le type de retour n'est pas considéré comme faisant partie de la signature de fonction pour les fonctions ordinaires n'est pas explicitement indiquée dans la norme C. Cependant, on peut en déduire que cela est dû au fait que la surcharge de fonction est principalement basée sur l'identifiant de la fonction et les types de paramètres.

Lorsque la surcharge est invalide

Malgré le type de retour ne faisant pas partie de la signature, le Standard interdit de surcharger une fonction avec un type de retour différent. Cela signifie que le code suivant entraînera une erreur de compilation dans les principaux compilateurs actuels :

int f();
double f(); // invalid
Copier après la connexion

Conclusion

En C , le type de retour ne fait pas partie du signature des fonctions ordinaires mais est inclus dans la signature des spécialisations de modèles de fonctions. Cette distinction est importante à comprendre lors de la surcharge de fonctions et de l'utilisation de modèles de fonctions.

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!

source:php.cn
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