voidについて

解決


c言語初心者  2013-05-28 17:30:21  No: 73693  IP: 192.*.*.*

はじめまして、c言語初心者です。
文法の事でお聞きいたします。
「void main(void)」文について、
voidは戻り値が無いとは知っているのですが、「main(void)」の前にもうひとつ「void」が付いているのはどうしてでしょうか。

他にも「HSEARCH SH_initialize(void)」など見たことがあります。
しかも、「void SH_finalize(HSEARCH hS)」と関連しているような文も書かれていました。

編集 削除
tetrapod  2013-05-28 18:40:29  No: 73694  IP: 192.*.*.*

void を日本語にしたら「無効」とかそういう意味なわけだ。

void func(void) { ... } // というソースコードがあるとき
・左側の void は func が返す値が無効、つまり戻り値なしを意味する。
・右側の void (括弧の中の void) は func の引数が無いことを意味する。

ならばもう他のも読めるはず。
HSEARCH SH_initialize(void); の void は引数無し (戻り値 HSEARCH 型)
void SH_finalize(HSEARCH); の void は戻り値なし (引数 HSEARCH 型)
ってことだ。

# void* ってのもあるけど、もう一歩先の話ってことで。

編集 削除
c言語初心者  2013-05-30 10:21:16  No: 73695  IP: 192.*.*.*

tetrapodさん、
教えて頂きありがとうございます。
戻り値と引数の事でしたか。
イメージが掴めて、すごく解かりやすかったです。
続けて勉強していきます。

編集 削除