"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi l'impression d'un nom de fonction en C++ donne-t-elle « 1 » ?

Pourquoi l'impression d'un nom de fonction en C++ donne-t-elle « 1 » ?

Publié le 2024-11-08
Parcourir:603

Why Does Printing a Function Name in C   Result in \

calculer une fonction sans appeler : percer le mystère

Imaginez ceci : vous codez et au lieu d'invoquer une fonction avec des parenthèses, vous imprimez simplement son nom. Étonnamment, le résultat est toujours 1. Cette approche non conventionnelle vous laisse perplexe, tant sur les 1 que sur l'absence du pointeur de fonction attendu.

Plongeons dans les subtilités de votre code :

#include 
using namespace std;

void pr()
{
    cout 

Contrairement à votre intention, vous n'appelez pas réellement la fonction pr dans les instructions cout

Pour améliorer votre compréhension, pensez à utiliser cout

Alors que C 11 offre une solution élégante :

template 
std::ostream & operator

Cette surcharge vous permet d'imprimer des pointeurs de fonction d'arité arbitraire, affichant des informations comme l'adresse du pointeur de fonction et le nombre de ses arguments.

Donc, voilà : les 1 énigmatiques sont pas une simple coïncidence mais le résultat d'une conversion de type implicite. Comprendre ce comportement est crucial pour éviter des résultats inattendus et créer un code plus robuste.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3