Compartilhar via


Usar o nome da função sem () produz sem código

Quando um nome de função declarado no seu programa é usado sem parênteses, o compilador não produzem código.Isso ocorre independentemente de estarem ou não a função usa parâmetros porque o compilador calcula o endereço de função; no entanto, porque a função chamar o operador "()" não estiver presente, nenhuma telefonar é feita.Esse resultado é semelhante à seguinte:

// compile with /Wall to generate a warning
int a;
a;      // no code generated here either

No Visual C++, mesmo usando o nível de aviso 4 não gera nenhuma saída de diagnóstico.Nenhum aviso é emitido; nenhum código é produzido.

O código de exemplo a seguir compila (com um aviso) e vincula corretamente sem erros, mas não produz nenhum código de referência a funcn( ). Para que isso funcione corretamente, adicione o operador de telefonar de função "()".

#include <stdio.h>
void funcn();

int main() {
   funcn;      /* missing function call operator; 
                  call will fail.  Use funcn() */
   }

void funcn() {
   printf("\nHello World\n");
}

Consulte também

Referência

Otimizando seu código