
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...
-
long型の定数の末尾にLを付ける...
-
DLLでLIBファイルが作成されない
-
クラスがメンバーとしてクラス...
-
エラー「invalid conversion fr...
-
DWORDの実際の型は何でしょうか
-
C++でboolにintの値を代入する...
-
C言語のreturnの使い方
-
スレッドのスケジューリングポ...
-
visualstudio C# テキストボッ...
-
変数の型を定義しなかった場合...
-
DDVによるメッセージの変更
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
「指定されたキャストは有効で...
-
信頼区間の1.96や1.65ってどこ...
-
20'(角度)の計算がわかりま...
-
静的でないメンバ関数の呼び出...
-
独立係数について教えて下さい。
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
main.c:7:43: warning: implici...
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
visualstudio C# テキストボッ...
-
2重定義って??
-
C++のfor文について
-
C++でboolにintの値を代入する...
-
構造体の要素すべてに対する四...
-
変数の型を定義しなかった場合...
-
C言語のコンパイルエラー
-
プログラムの中で別のmainを呼...
-
typedef enumの使い方を教えて...
-
構造体の宣言でエラーが出ます。
-
intとINTの違いは?
-
ハンドルされていない例外が発...
-
GCCで暗黙の型変換の警告を出し...
-
enumについて
-
【#define】 defineで定義した...
-
C言語 宣言した変数になにも代...
-
void func( void )について
おすすめ情報