ページ 1 / 1
mainについて
Posted: 2011年9月11日(日) 17:47
by tyutyu
include<stdio.h>
int main(void)
と
include<stdio.h>
int main()
とありますが、どう違うのですか???またvoidをつけなければいけない時はどういう時でしょうか?
参考書に載っていなかったので質問しました。
後、Cの本でソースを同じC++でつくったら、作成できません。
例 Cの場合 main
C++の場合 int main
Re: mainについて
Posted: 2011年9月11日(日) 19:51
by box
tyutyu さんが書きました:
int main(void)
int main()
とありますが、どう違うのですか???またvoidをつけなければいけない時はどういう時でしょうか?
前者のように、引数の並びとして
void
と書いた場合は、「引数がない」ということを明示する意味があります。
後者の、引数の並びを省略する書き方は、したことがないのでよくわかりません。もしかしたら、CとC++とでは意味が異なるのかもしれません。
tyutyu さんが書きました:
後、Cの本でソースを同じC++でつくったら、作成できません。
例 Cの場合 main
C++の場合 int main
おっしゃりたいことは何となくわかるんですが、どうもモヤモヤしてしまいますね。
まあ、C++の話は、まだしなくてよいのかも…。
Re: mainについて
Posted: 2011年9月12日(月) 07:43
by naohiro19
C言語の標準規格では
コード:
int main(int argc. char** args){ /* .. */ }
か
コード:
int main( void ){ /* .. */ }
の2つのみで
コード:
void main(){ /* .. */ }
は規格外です。
Re: mainについて
Posted: 2011年9月12日(月) 12:22
by へろりくしょん
tyutyu さんが書きました:とありますが、どう違うのですか???またvoidをつけなければいけない時はどういう時でしょうか?
参考書に載っていなかったので質問しました。
というより、原則として付けるべき。 だと心得てください。
C言語では hoge(void) と hoge() では意味が異なります。
前者の場合は、引数を取らない事を意味します。
後者の場合は、引数のチェックを行わない事を意味します。
ですので、
void hoge(void)
{
・・・
}
void foo()
{
・・・
}
main()
{
hoge(100); //エラー
foo(100); //おk
}
となります。
ちなみに、C++では、仮引数の宣言を省略した場合、それは void を与えた時と同じ意味です。
tyutyu さんが書きました:例 Cの場合 main
C++の場合 int main
C言語の場合、関数の戻り値の型を省略した場合、標準で int 型であると解釈されます。
C++の場合は省略する事は許されません。
#ところで、コードタグってどうやって使うんでしたっけ。
Re: mainについて
Posted: 2011年9月12日(月) 12:36
by non
へろりーな さんが書きました:#ところで、コードタグってどうやって使うんでしたっけ。
タグをつけたい範囲をドラッグして選択し、添付図のコード横の三角(赤丸部分)から、
言語を選びます。
もちろん直接
[code=c] と [/code] で囲っても可。([]は半角)
Re: mainについて
Posted: 2011年9月12日(月) 21:21
by みけCAT
トピックの話とはあまり関係なくてすみません。
naohiro19 さんが書きました:C言語の標準規格では
コード:
int main(int argc. char** args){ /* .. */ }
か
コード:
int main( void ){ /* .. */ }
の2つのみで
コード:
void main(){ /* .. */ }
は規格外です。
とありますが、
コード:
int main(int argc, char* args[]){ /* .. */ }
でもいいですよね?
また、argcとargsの部分も規格なのですか?
自分はよく
コード:
int main(int argc,char* argv[]){ /* .. */ }
のように書いています。
読みやすさは別として、
コード:
int main(int a,char** b){ /* .. */ }
のように適当な変数名だとどうなりますか?
混乱させてしまったらすみません。
Re: mainについて
Posted: 2011年9月12日(月) 21:26
by box
慣習上
argc(argument countのことと思われ)
や
argv(argument valueのことと思われ。argsは見たことがない)
を使ってるだけです。
名前はaでもbでも、型さえ合ってればよし。
Re: mainについて
Posted: 2011年9月12日(月) 21:37
by みけCAT
なるほど。