Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När ett funktionsnamn som deklarerats i programmet används utan parenteser skapar kompilatorn inte kod. Detta inträffar oavsett om funktionen tar parametrar eftersom kompilatorn beräknar funktionsadressen. Men eftersom funktionsanropsoperatorn "()" inte finns görs inget anrop. Det här resultatet liknar följande:
// compile with /Wall to generate a warning
int a;
a; // no code generated here either
I Visual C++ genererar inte ens varningsnivå 4 några diagnostiska utdata. Ingen varning utfärdas. ingen kod skapas.
Exempelkoden nedan kompilerar (med en varning) och länkar korrekt utan fel men genererar ingen kod som referens till funcn( ). För att detta ska fungera korrekt lägger du till funktionsanropsoperatorn "()".
#include <stdio.h>
void funcn();
int main() {
funcn; /* missing function call operator;
call will fail. Use funcn() */
}
void funcn() {
printf("\nHello World\n");
}