人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

java、C言語などで使われている「Void」について。

Javaでも、C言語でも、Voidは戻り値無しで処理を走らせているようなのですが、
Voidで処理させる意味について疑問なのですが
Voidで処理を走らせる意味としては「戻り値を取る必要が無く、単純にメソッド、及び関数を呼び出していきたい時に使用する」
ものがVoidである、という認識で合っていますでしょうか?

●質問者: ThinkThink
●カテゴリ:コンピュータ
✍キーワード:C言語 Java void メソッド 戻り値
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●27ポイント

合っています。


古いC言語(下記の「プログラミング言語C」の初版など)では、voidの扱いが曖昧で

void main() {
  ...

というようなサンプル・プログラムも見かけたものです。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

  • 作者: B.W. カーニハン D.M. リッチー
  • 出版社/メーカー: 共立出版
  • メディア: 単行本


その後、ANSIで規格化されるに際し、引数や戻り値の型を意識することが求められました。

そこで、引数や戻り値が存在しない場合に対して、便宜上、voidの記述を求めるようになりました。


Javaも、この考えを受け継いでいます。

◎質問者からの返答

ご回答ありがとうございます。


>その後、ANSIで規格化されるに際し、引数や戻り値の型を意識することが求められました。

あっ。となると。


恐らくイメージなのですけれども、ANSI規格化の際に、

戻り値がない場合は「Void(戻り値無いですよ)を使いましょう(という規則を使いましょう)」。

戻り値がある場合は「戻り値の型に合わせた型を使いましょう(という規則を使いましょう)」。

ということが取り決められている、ということになるのですね?

C言語に対する、ANSIの規格化が先であり、

Javaがその規格のルールを受け継いだと考えていくと・・・ 納得することができました。


ありがとうございます。


2 ● newta
●27ポイント

戻り値が必要ないときはvoidです。

引数にポインタで変数を与えて、そこにセットさせたりするときは

すでに変数で値をもらっているのでvoidでも良かったりします。


http://q.hatena.ne.jp/answer

◎質問者からの返答

ご回答ありがとうございます。

Voidで良い意味が段々と判ってきました。


3 ● rsc
●26ポイント

それで合っていると思います。下記URLの「注意」の項目を参照して下さい。

>引数が不要な場合,引数として void を書く.

>返り値が不要な場合,返り値の型として void を使う.この場合 return 文には値は不要.

・C言語入門(2) 関数の定義

http://www.media.osaka-cu.ac.jp/~k-abe/2001-JS-OSAKA-U/C-2.html

ちなみに、voidは、「空」という意味があるそうです。

http://hp.vector.co.jp/authors/VA001944/c-begin/text03.html

それから、特別な場合ですが、C言語で、「void *」(void型ポインタ)には、汎用ポインタとしての使い方もあります。

http://wisdom.sakura.ne.jp/programming/c/c47.html

◎質問者からの返答

ご回答ありがとうございます。

>ちなみに、voidは、「空」という意味があるそうです。

ありがとうございます。

voidという意味について意識していなかったです・・・

空と当てはめると(戻り値が無いですよ)という意味合いにもなるのでイメージがつかめました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ