友人から送られてきたコードを見ていたら、「コンパイルされますが、機能しません」と言われました。彼が括弧なしで関数を使用しているのを見ました。次のようなものです。
void foo(){
cout<< "Hello world\n";
}
int main(){
foo; //function without parentheses
return 0;
}
私が最初に言ったのは「かっこを使う、あなたはしなければならない」でした。次に、そのコードをテストしました。コンパイルは行われますが、実行しても機能しません(「Helloworld」は表示されません)。
では、なぜコンパイルされるのですか(コンパイラGCC 4.7からの警告はまったくありません)が、機能しませんか?