
No.2ベストアンサー
- 回答日時:
C++の場合は、mainを呼び出したり、mainへのポインタを取得することができません。
しかし、Cであれば可能です。
mainを呼び出す必要がある部分をCで実装するか、
int call_main(int argc, char *argv[])
{
return main(argc, argc);
}
のような関数だけCで作っておいて、あとはこれを使うようにすることで実現可能です。
複数のmain関数を共存させることはできません。
ただし、#if等で、Debug版とRelease版(あるいはそれ以外)では異なるmainを使うといったことであれば可能です。
No.1
- 回答日時:
規格上、いわゆるメイン関数(グローバルのmain関数)は、
呼び出してはいけない決まりですので、まず呼び出せません。
また、グローバルなmainをオーバーロードすることは
違反ですし、同名のmainを複数定義すれば、
単一定義則違反でリンクエラーになりますから、
複数をひとつのプログラムにまとめることはできません。
そして、staticなmainも禁止されますので、
そういうこともできません(まぁ外部リンケージないので、
外から呼べませんが>static)
ということで、mainという名前の関数を共存させるとしたら、
「別のnamespaceに入れる」しか手がありませんが、
別のnamespaceにあるmainは、単なるmainという名前の
普通の関数に過ぎず、いわゆるmainとしては動作しませんので、
おそらく質問の趣旨とは違うものになっていると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
main.c:7:43: warning: implici...
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
visualstudio C# テキストボッ...
-
変数の型を定義しなかった場合...
-
C++ クラスをメンバにもつクラ...
-
警告 ”値が割り当てられていな...
-
ハンドルされていない例外が発...
-
C++の(左辺値)参照を参照渡し
-
C++のfor文について
-
【C++】typedefの役割について
-
intとINTの違いは?
-
構造体の要素すべてに対する四...
-
main()とint main(void)の違い
-
sshdログの意味
-
void func( void )について
-
「Aに対するBの割合」と「Aに対...
-
Aの値からBの値を除するとは??
-
Enterキーを押されたら次の処理...
-
有効数字について 以前質問をし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
visualstudio C# テキストボッ...
-
long型の定数の末尾にLを付ける...
-
main.c:7:43: warning: implici...
-
intとINTの違いは?
-
C++のfor文について
-
2重定義って??
-
void func( void )について
-
変数の型を定義しなかった場合...
-
C言語のコンパイルエラー
-
C++でboolにintの値を代入する...
-
ハンドルされていない例外が発...
-
構造体の要素すべてに対する四...
-
構造体の宣言でエラーが出ます。
-
プログラムの中で別のmainを呼...
-
[C++]メンバ関数の仮引数について
-
0除算を判定したい
-
プログラム、どのように書いて...
-
typedef enumの使い方を教えて...
-
enumについて
おすすめ情報