Usar o nome da função sem () não produz nenhum código.
Quando um nome de função declarado em 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 da função; No entanto, porque a função chamar o operador "()" é não estiver presente, nenhuma chamada é 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 gera o diagnóstico de saída. 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 chamada 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");
}