Heim > Backend-Entwicklung > C++ > Ist der Rückgabetyp Teil einer C-Funktionssignatur?

Ist der Rückgabetyp Teil einer C-Funktionssignatur?

Barbara Streisand
Freigeben: 2024-12-06 06:07:10
Original
695 Leute haben es durchsucht

Is the Return Type Part of a C   Function Signature?

Rückgabetyp und Funktionssignatur in C

In C wird der Rückgabetyp einer Funktion bei gewöhnlichen Funktionen nicht als Teil ihrer Signatur betrachtet , also Funktionen, die keine Spezialisierungen von Funktionsvorlagen sind. Dies bedeutet, dass Funktionen mit demselben Namen und denselben Parametertypen überladen werden können, auch wenn sie unterschiedliche Rückgabetypen haben.

Signatur von Funktionsvorlagenspezialisierungen

Allerdings für Funktion Bei Vorlagenspezialisierungen ist der Rückgabetyp in der Signatur enthalten. Dies liegt daran, dass die Signatur einer Funktionsvorlagenspezialisierung die Signatur der Vorlage selbst sowie deren Rückgabetyp und Vorlagenparameterliste umfasst.

Warum ist sie nicht Teil der Funktionssignatur?

Der Grund, warum der Rückgabetyp nicht als Teil der Funktionssignatur für gewöhnliche Funktionen betrachtet wird, wird im C-Standard nicht explizit angegeben. Es kann jedoch gefolgert werden, dass dies auf die Tatsache zurückzuführen ist, dass die Funktionsüberladung hauptsächlich auf der Kennung und den Parametertypen der Funktion basiert.

Wenn die Überladung ungültig ist

Trotzdem Da der Rückgabetyp nicht Teil der Signatur ist, verbietet der Standard das Überladen einer Funktion mit einem anderen Rückgabetyp. Dies bedeutet, dass der folgende Code in aktuellen Hauptcompilern zu einem Kompilierungsfehler führt:

int f();
double f(); // invalid
Nach dem Login kopieren

Fazit

In C ist der Rückgabetyp nicht Teil von Signatur gewöhnlicher Funktionen, ist jedoch in der Signatur von Funktionsvorlagenspezialisierungen enthalten. Diese Unterscheidung ist wichtig zu verstehen, wenn Sie Funktionen überladen und mit Funktionsvorlagen arbeiten.

Das obige ist der detaillierte Inhalt vonIst der Rückgabetyp Teil einer C-Funktionssignatur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage