アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの通りです。
よく見かけるのですが、わざわざ括弧を付ける意味は
何なのでしょうか。

A 回答 (4件)

古い人はわざわざ括弧をつけたがりますね。


K&Rの第1版では括弧が付いていたからみたいです。
昔の処理系は括弧をつけないといけなかったんでしょうかね?

括弧をつけてタイプミスするとそんな関数無いよエラーになるので私は付けません。

参考URL:http://kilin.u-shizuoka-ken.ac.jp/lecture/prog1/ …
    • good
    • 0
この回答へのお礼

arrowrootさん、解答有り難う御座います。

>括弧をつけてタイプミスするとそんな関数無いよエラーになるので私は付けません。

うろ覚えですが昔、「括弧をつけてタイプミスするとそんな関数無いよエラーになるので括弧を付ける」というのを
どっかで見たような気がします。たかが、returnの
タイプミス検出のために括弧を付けるのは本当?
と思ったのが今回の質問の裏の事情でもあります。

>昔の処理系は括弧をつけないといけなかったんでしょうかね?

これは本当でしょうか。識者の解答を待ちたいと思います。

お礼日時:2003/06/15 22:40

括弧をつけるのはあいかわらず謎ですが


return (0) をタイプミスすると
コンパイルは通ってしまいます。
警告くらいは出ますが。
で、リンクの段階になるまでミスが発覚しない。

括弧を付けないとコンパイルの段階でエラーになります。
よって付けない方がまし。

参考URL:http://www.st.rim.or.jp/~phinloda/cqa/cqa6.html# …
    • good
    • 0

別に意味無いんじゃないですか?でも,付ける派の自己分析を少し.


私は昔は付けなくていいことを知らなくて付けてました.知ってからはしばらく付けなかったんですが,また付けるようになりました.
というわけで,理由というか原因はいくつかあると思います.

1.付けなくていいことを知らない
2.昔知らなかったときの癖で付けている

しばらく付けなかったときのことを思い出してみると,付けないとなんか気持ち悪いんですよね.過去の私を含め勘違いする人がいるくらいに,return文てすごく呼出しに似てるじゃないですか.だから書き方が統一されてないと落ち着かない.美しくないと感じる.

3.呼出しとの統一感

見やすい/見にくいも主観に過ぎないですが,括弧が無いとワードと値の境界が分かりにくく感じる.特に戻り値が複雑な式になった場合.

4.区切りとして括弧を入れている

あと,余分な括弧を入れるのに抵抗があるか無いか,という個人的特性が下地としてあるんじゃないでしょうか.出来るだけシンプルに書きたい人もいるでしょうし,入れていい括弧なら好きなように入れればいいじゃないか,という人もいるでしょう.私は後者で冗長な括弧をよく使います.*p++を*(p++)と書いたり,(で長い式をインデントさせまくったり.

要は,気持ちの問題ではないかと.

ああ,あと,昔覚えた言語の癖,という仮説も考えたんですが,私がかじった言語にはreturnに()が必要な言語はありませんでした.
    • good
    • 0

つけちゃう派です。


つけなきゃだめ!とは思ってませんけど、つい指がreturn (と連続でタイプしてしまいます。

20年くらい前のことなので曖昧な記憶ですが、Ritchie-Cではreturn に()が必要だったと思います。
enumキーワードが無くてentryキーワードのあったバージョンです。
UNIX Version 6か7の標準コンパイラだったような…

ANSI-CはRitchie-Cではなく、Portable C Compiler(Jhonson-C)の流れなので、文法がかなり変わってます。

K&R第1版は初期のJhonson-Cを元にしているので、Rithcie-Cの癖が抜けてないのでしょう。

で、私なりのこじつけ。

returnって「式を取る制御キーワード」ですね。
ifやwhile、switchと同族です。
ifやwhileの式は()で括るのに、returnだけ特例扱いするのは気持ちが悪い。
caseも制御キーワードですが、caseが取るのは式ではなく値であり、ラベルとしての要素が強いのでgotoラベルと同じように()で括らない。

別にこのこじつけで「絶対に()をつけよう!」と主張しているのではなく、()をつけることで統一されたソースに対してお客さんから「何で()つけてるの?」と質問されたときの対応用です。
テスト済みのソースを修正したくないので…

基本的に統一されていればどっちでもオッケーでは?と思ってます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!