int main(void)
のmainをmain2など他の名前に変えてもいいですか?
また、(int argc, const char * argv[])これはvoidとどう違うのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
main関数の名前を変えても良いか?
原則的に出来ませんし、仮に出来ても、やるべきではありません。
main関数は「このプログラムは、この関数から始まるよ」という一種の目印です。自由気ままに変更してしまっては、「このプログラムは、どの関数から開始されるのか?」が分かりづらくなってしまいますからね。
main関数の引数の違い
main関数の引数として「int argc, const char * argv[]」を用いると、コマンドラインオプションとして、プログラムの外部から情報を与える事が出来るようになります。
引数argcには、コマンドラインオプションとして渡された文字列の数+1が、引数argvには、そのプログラムの名前と、それぞれのコマンドラインオプション文字列へのポインタの配列が渡されます(詳細は省きます。ぜひ調べてみてください)。
さて、引数がvoidな関数とは、どういう物だったでしょうか。引数を取らない関数ですね。
つまり、main関数の引数をvoidにすると、コマンドラインオプションの内容をプログラムから取得出来ない/しないという事になります。
全てのプログラムでコマンドラインオプションが必要という事はないので、貴方が作りたいプログラムに合わせ、使い分けると良いでしょう。
投稿2015/04/13 14:04
総合スコア105
0
ベストアンサー
C言語におけるint main(void)はプログラムが始まって一番最初に実行される関数として規定されてされているため変更できません。
また引数の違いですが、これはコマンドラインでの引数をとるかどうかの違いです。なので、GUIから操作する限りにおいては関係ありません。もし、linuxやMacで端末(ターミナル)からプログラムを起動するのであれば違いが出てきます。また、Windowsでもコマンドプロンプトを使ってプログラムを起動するのであれば違いが出てきます。
具体的には、"(int argc,const char *argv[])"を引数に指定することによって、mkdirのようにCLIから起動する際にプログラム本体とは別にデータを指定することができます。
投稿2015/04/13 13:21
総合スコア18
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/13 16:03