"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que imprimir um nome de função em C++ resulta em “1”?

Por que imprimir um nome de função em C++ resulta em “1”?

Publicado em 2024-11-08
Navegar:486

Why Does Printing a Function Name in C   Result in \

contando uma função sem chamar: desvendando o mistério

Imagine isto: você está codificando e em vez de invocar uma função com parênteses, você simplesmente imprime seu nome. Surpreendentemente, o resultado é sempre 1. Essa abordagem não convencional deixa você perplexo, tanto com relação aos 1s quanto com a ausência do ponteiro de função esperado.

Vamos nos aprofundar nas complexidades do seu código:

#include 
using namespace std;

void pr()
{
    cout 

Contrário à sua intenção, você não está realmente chamando a função pr nas instruções cout

Para melhorar sua compreensão, considere usar cout

Enquanto C 11 oferece uma solução elegante:

template 
std::ostream & operator

Essa sobrecarga permite que você imprima ponteiros de função de aridade arbitrária, exibindo informações como o endereço do ponteiro de função e o número de seus argumentos.

Então, aí está: os 1s enigmáticos são não é uma mera coincidência, mas um resultado de conversão implícita de tipo. Compreender esse comportamento é crucial para evitar resultados inesperados e criar um código mais robusto.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3