【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18840

関数の引数について
投稿者---T(2004/12/21 18:30:57)


素朴な質問なのですが
関数の引数にvoidを記述する場合と何も書かない場合の違いはあるのでしょうか?

例)
void test( )
{

}


void test( void )
{

}
の違いです。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:関数の引数について 18842 BB 2004/12/21 18:55:06
<子記事> Re:関数の引数について 18848 NykR 2004/12/22 12:36:22


No.18842

Re:関数の引数について
投稿者---BB(2004/12/21 18:55:06)


voidを書かなければ、コンパイラによる引数のチェックが行われません。
例えば、このようなプログラムでもコンパイラは何も言ってこないとおもいます。

#include <stdio.h>

int sum();

int main()
{
printf("%d\n",sum(5));
return 0;
}

int sum()
{
int a=1, b=2;
return a+b;
}

書かなければならないことはないですが、引数がないということを明示的にするためにvoidは付けておいたほうがいいでしょう。


この投稿にコメントする

削除パスワード

No.18843

Re:関数の引数について
投稿者---Ban(2004/12/21 19:02:54)


# 余談。C++ だと両者は同一の意味をもちます。


この投稿にコメントする

削除パスワード

No.18844

Re:関数の引数について
投稿者---T(2004/12/21 19:17:16)


御二方、有難う御座います。

某メーカーのサンプルプログラムをみてて
関数が続けて定義してあるにもかかわらず
一方はvoidがあって、他方はないので
意味があるのか気になりました。
有難う御座いました。



この投稿にコメントする

削除パスワード

No.18848

Re:関数の引数について
投稿者---NykR(2004/12/22 12:36:22)


>関数の引数にvoidを記述する場合と何も書かない場合の違いはあるのでしょうか?

何も書かない場合
・定義の場合は「引数をとらない」という意味になります。
・宣言の場合は引数のチェックが行われません。

voidを記述する場合
・定義の場合も宣言の場合も「引数をとらない」という意味になります。

引数に何も書かない関数宣言や定義はしない方がよいでしょう。
どちらも標準規格で「廃止予定事項」になっていますので。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧