なぜこれがコンパイルされるのですか?
int main() {
void f();
}
とはf
? それは関数または変数ですか、どうすれば使用できますか?
関数宣言は許可されますが、関数定義は許可されません。
ただし、次のコードは明確に定義されています。
#include <iostream>
int main()
{
// void function() {}; // a function-definition is not allowed
struct Function {
static void apply() {
std::cout << "Hello World" << std::endl;
}
};
Function::apply();
}
f は、戻り値の型が void である関数の識別子 (名前) です。ここでは、関数はそれを使用するためにメイン関数で呼び出されるだけです。ここで宣言して定義する必要があります。構文は次のとおりです。
void f(); //before main function declaration
int main() //main
{}
void f(); //define here the function f.
そして最後になりましたが、最初に宣言して定義した場合にのみ、この関数を使用できます(関数を呼び出して便利な作業を行います)。