voidについて素朴(?)な疑問が生じたので質問させていただきます。
例えば以下のような関数があったとします
この関数、見ての通り引数は不要です。
僕ならば間違いなく上記のように引数リストには何も書きませんが、学校のとある先生はこのような場合必ず以下のように引数リストにvoidを記述します
書く必要がないのに、何故わざわざvoidを記述するのかと聞いたところ
・昔の癖やねん、昔はvoidを書かへんかったらコンパイラがエラー吐き出しよったから
・あと書いといた方が引数いらんねやって分かりやすいやろ
と返答が返ってきました(若干うろ覚えな所もありますが)
前者は先生がベテランなのでともかくとして、後者の理由に疑問が生じました。
今は引数が不要の場合、リストになにも書かなくても問題ないのは今や常識(のハズ)ですし
少なくともウチのクラスメートにもこのような場合にvoidを記述する人はいません。
そこで質問なのですが、このような場合引数リストにvoidは書いた方がいいのでしょうか?
書かない方がいいのでしょうか?
またはそれぞれ使い分けた方がいい場合はどのように使い分けたらいいのでしょうか?
voidについて
Re: voidについて
C言語だとvoidを書かない場合、引数リストを省略したと見なされるはずです。
つまり、引数が無い、のではなく、引数リストを書いていない、ということです。
引数がない場合はvoidを書くべきです。
C++だったらvoidを書いても書かなくても同じです。
つまり、引数が無い、のではなく、引数リストを書いていない、ということです。
引数がない場合はvoidを書くべきです。
C++だったらvoidを書いても書かなくても同じです。
Re: voidについて
お二方とも簡潔かつ明瞭に教えて頂いて感謝です。
僕ももうすこし短く分かりやすい説明の仕方を身に付けたいです・・・
それはともかく、疑問が概ねスッキリしました
CとC++では扱いが違うのですね、僕は開発はほぼC++で行うので意識する必要はなさそうですが
今後もそうであるとは限らないので覚えておくべきですね。
ついでにお聞きしたいのですがC#の場合扱いはどうなるのでしょうか?
よろしければ教えてください。
僕ももうすこし短く分かりやすい説明の仕方を身に付けたいです・・・
それはともかく、疑問が概ねスッキリしました
CとC++では扱いが違うのですね、僕は開発はほぼC++で行うので意識する必要はなさそうですが
今後もそうであるとは限らないので覚えておくべきですね。
ついでにお聞きしたいのですがC#の場合扱いはどうなるのでしょうか?
よろしければ教えてください。
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ
- bitter_fox
- 記事: 607
- 登録日時: 13年前
- 住所: 大阪府
Re: voidについて
C#の場合だと書いたらエラーになると思います。jay さんが書きました: ついでにお聞きしたいのですがC#の場合扱いはどうなるのでしょうか?
引数がないときは何も書かないかと。
[hr][追記]
エラーになりました。
http://ideone.com/gbfhD
Re: voidについて
>bitter_foxさん
C#の場合エラーになるのですか、フムフム・・・
C#だろうとC++だろうと僕の中では省略するのが普通だったのですが
学校では稀に開発にC#(XNA)の使用を強制されることがあるので一応知っておきたかったのです。
C#の場合は省略するのが唯一の答えですね、把握しました。
これで疑問が全て解決してスッキリしました。
教えてくださったbeatleさん、たかぎさん、bitter_foxさん
どうもありがとうございました
C#の場合エラーになるのですか、フムフム・・・
C#だろうとC++だろうと僕の中では省略するのが普通だったのですが
学校では稀に開発にC#(XNA)の使用を強制されることがあるので一応知っておきたかったのです。
C#の場合は省略するのが唯一の答えですね、把握しました。
これで疑問が全て解決してスッキリしました。
教えてくださったbeatleさん、たかぎさん、bitter_foxさん
どうもありがとうございました
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ