MVisualC ++ 2010を使用していますが、「メイン」の定義を解除しようとすると、結果が得られず、コンソールが通常どおり起動します。エントリポイントの欠落エラーなどが予想されていました。何故ですか?
#undef main
int main()
{
}
MVisualC ++ 2010を使用していますが、「メイン」の定義を解除しようとすると、結果が得られず、コンソールが通常どおり起動します。エントリポイントの欠落エラーなどが予想されていました。何故ですか?
#undef main
int main()
{
}
mainはそもそもa#define
ではありません。あなた#undef
は何も変更しません。
#define foo bar
プリプロセッサに「fooのすべての出現箇所をbarに置き換えてください」と伝えます。
#undef foo
プリプロセッサに「fooにはもう特別な意味はありません。そのままにしておきます」と伝えます。
リンカエラーが必要な場合は、名前main
をegmain2
に変更するか、次のようにします。
void foo();
int main() {
foo();
}
これは、関数が存在することをコンパイラーに通知しfoo
ます(ただし、関数が何であるかは通知しません)。main
使用しようとするため、リンカーが見つからない場合はエラーが発生します。