共用方式為


使用不帶 () 的函式名稱不會產生程式碼

當您程式中宣告的函式名稱不使用括弧時,編譯器不會產生程式碼。 不論函式是否接受參數,編譯器都會計算函式位址,都會發生此情況:不過,由於函式呼叫運算子 「()」 不存在,因此不會進行呼叫。 此結果與下列類似:

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

在 Visual C++ 中,即使使用警告層級 4 也不會產生診斷輸出。 未發出任何警告;不會產生任何程式碼。

下列範例程式碼會編譯 (具有警告),並正確連結而不發生錯誤,但不會產生參考 funcn( ) 的程式碼。 若要正確運作,請新增函式呼叫運算子 「()」。

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

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

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

另請參閱

最佳化程式碼