Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Wenn ein im Programm deklarierter Funktionsname ohne Klammern verwendet wird, generiert der Compiler keinen Code. Dies tritt unabhängig davon auf, ob die Funktion Parameter verwendet, da der Compiler die Funktionsadresse berechnet. Da der Funktionsaufrufoperator "()" jedoch nicht vorhanden ist, wird kein Aufruf durchgeführt. Das Ergebnis sieht ungefähr wie folgt aus:
// compile with /Wall to generate a warning
int a;
a; // no code generated here either
In Visual C++ wird selbst bei Verwendung von Warnstufe 4 keine Diagnoseausgabe generiert. Es wird keine Warnung ausgegeben und kein Code erzeugt.
Der unten aufgeführte Beispielcode wird (mit einer Warnung) kompiliert und führt eine ordnungsgemäße Verknüpfung ohne Fehler aus, generiert jedoch keinen Code, der auf funcn( ) verweist. Damit dies ordnungsgemäß funktioniert, fügen Sie den Funktionsaufrufoperator "()" hinzu.
#include <stdio.h>
void funcn();
int main() {
funcn; /* missing function call operator;
call will fail. Use funcn() */
}
void funcn() {
printf("\nHello World\n");
}