市販のテキストを読んだところ
コマンドライン引数は
int main(void)と
main(int argc, char *argv[])
の二種類書き方があると知りました。
両者の違いがよく分からないので、使い分け方法について出来る限り平易な説明をしていただけないでしょうか?
コマンドライン引数がよくわらかない
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: コマンドライン引数がよくわらかない
C言語では一般的にmain関数を
int main(void) {
//略
}
か
int main(int argc, char *argv[]) {
//略
}
で書きます。
(ただ実装定義の方法でもいいのでこれ以外でも構わないことになっていますし、CとC++でも違いがありますが、そのようなことはこの際置いておきます)
コマンドラインから引数を受け取りたいときは後者を使えばいいでしょうし、その必要が無いなら前者でよいでしょう。
int main(void) {
//略
}
か
int main(int argc, char *argv[]) {
//略
}
で書きます。
(ただ実装定義の方法でもいいのでこれ以外でも構わないことになっていますし、CとC++でも違いがありますが、そのようなことはこの際置いておきます)
コマンドラインから引数を受け取りたいときは後者を使えばいいでしょうし、その必要が無いなら前者でよいでしょう。
Re: コマンドライン引数がよくわらかない
質問に誤りがあります。gumi さんが書きました:市販のテキストを読んだところ
コマンドライン引数は
int main(void)と
main(int argc, char *argv[])
の二種類書き方があると知りました。
main関数の引数は
int main(void) と
int main(int argc, char *argv[])
のはずです。
gumi さんが書きました: 両者の違いがよく分からないので、使い分け方法について出来る限り平易な説明をしていただけないでしょうか?
#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc < 2)
puts("What's your name?");
else {
printf("Hello,");
for (int i = 1; i < argc; i++)
printf(" %s", argv[i]);
printf(".\n");
}
return 0;
}
gcc がコマンド、-o と name と name.c が引数です。
このコマンドライン引数をプログラム内で利用するために
main関数には、argc や argv という引数を付けることができます。
コマンドライン引数が必要ないときは void で構いません。
argc や argv はそういう名前を使わなければならないという
ことではありません。なんでもいいんです。
int main(int c, char *v[]) と書いても構いません。
argument count と argument vector という意味です。
質問を放置しないでほしい。
Re: コマンドライン引数がよくわらかない
具体的なテキスト名が無いのでわかりませんが、質問ではなく「市販のテキスト」に誤りがある可能性が考えられます。かずま さんが書きました:質問に誤りがあります。gumi さんが書きました:市販のテキストを読んだところ
コマンドライン引数は
int main(void)と
main(int argc, char *argv[])
の二種類書き方があると知りました。
main関数の引数は
int main(void) と
int main(int argc, char *argv[])
のはずです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)