タグ

styleとcに関するkiyo_hikoのブックマーク (7)

  • 早期リターンを禁止されるつらさ

    転職した会社で早期リターンが禁止されている。 正確に言うと、misraCを踏襲し、関数内ではreturnは末尾に1つだけ、という制約が設けられている。 この他にも関数ポインタが禁止等も色々あるが、早期リターンを禁止されるのは当に困る。 早期リターンによってどれだけ気持ちよくコーディングできるか分かっていない。 もうこの後の行は読まなくていいんだ、という精神的安堵感。 これをもうこの会社では得られない。 関数のポインタ引数のconst禁止程の破壊力がある。 地獄のような10重以上のネスト地獄・・・。 律儀に守ることによる可読性の低下の方が問題ではなかろうか。

    早期リターンを禁止されるつらさ
    kiyo_hiko
    kiyo_hiko 2022/04/23
    ガードの事かな?https://qiita.com/kouyan/items/7b8b456b626447a1e24e 俺は禁止されたら `goto <一番後ろ>;` 使う。gotoかわいいよgoto。ちなみにMISRA-CじゃなくてCERT C読むとgotoは一部の状況(08.MEM)で推奨すらされている。割と増田の状況向き
  • コーディング規約メモ

    Cコーディング・スタイル例 以前(2~4年前)に、社内向けにコーディング規約案を書いたことが あり、その残骸?があったのでコーディングスタイルの例として 出しておきます。 規約といってもラフなものですし、その当時の自分の スタイル/自衛手段を書き出し、これを叩き台にして他の人の要望 などを反映させたりしました。以下は、 社内事情や自分のスタイルに合わない個所をいくつか 削除しています(自分の習慣でない記述も残っていますが)。 単なる一般的な自衛手段だったり 完全に自分の好みのこともありますが、 一応、なぜ、そのようにするのか、を、書くようにしていたので、 何かの参考になるかもしれません。 あと、スタイルに関しては 『プログラミング作法』(書籍ですが)を みるのがいいでしょう。オンラインでは こちらなんか も結構いいです。 ■はじめに ■ ソース・ファイル ■ソース中の特殊文字コード ■動作

  • よりよいソースコードはどっち?

    kiyo_hiko
    kiyo_hiko 2015/04/09
    日頃ゴルフしてるせいかBの方が見やすいが、条件節内で==TRUEや==FALSE蛇足(Cのブールって何か特殊なのかな)だし、continue後ろにelseとか蛇足。Cnt++, ErrCnt++よりpass++, fail++とかがいい
  • C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog

    はじめに こんにちは、Go界のシャールト・コプリーです。気がついたら最後のエントリから3ヶ月も経ってました。 Goを始めると「なんでこういう書き方になってるんだろう」とか、「そもそもなんでこういう仕様になってるんだろう」とか思うことがちらほらあると思います。これは大いにGoの作者の一人であるRob Pike氏の思想に依るところがあるのが見受けられます。彼のプログラムに対する考え方が25年前に公開され「Pike Style」として知られていますが、いまもその考え方は大きくは変わっていないと思われます。せっかくなので翻訳しました。文はC言語に関する文章ですがその質は言語に依らないものだと思います。 Notes on Programming in C (追記)25年前なのでコンパイラの動作に依存する部分(includeに関する記述)などは古い部分もありますが、プログラミングスタイルに関する部

    C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog
  • http://read.pudn.com/downloads118/sourcecode/embed/499933/CMGuide_V1-0.pdf

    kiyo_hiko
    kiyo_hiko 2012/12/06
    「複数の実引数を持つ関数の各実引数の実行の(評価)順序は,コンパイラは保証していない」 なるほ
  • exitとreturnの使い分け - OKWAVE

    ANSI規格では、mainの中で使う限りにおいては、returnとexitに関しては違いがありません。 関数の中で使った場合、returnはその関数を呼び出した関数に対して値を返すのに対し、exitはそのプログラムを呼び出した他のプログラム(OSや他のプロセス、サービスなど)に対して値を返します。 これらを念頭において使い分ければいいと思います。 私の場合は、exitはmainと各関数でプログラムの仕様上エラーに対処できない場合にプログラムを強制終了したい場所で使います。 それ以外の場所ではreturnを使います。

    exitとreturnの使い分け - OKWAVE
    kiyo_hiko
    kiyo_hiko 2012/07/04
    うーんやはり上位に戻すべきだよなあ ただの関数で失敗したときにバンバンexitしてる関数だらけのソースを見て閉口した
  • C言語でfor文の中からreturnで抜けることに問題はあるでしょうか? - 昔、「for文の中からbreakで抜けるのは良... - Yahoo!知恵袋

    for ループ から return で 抜けると プログラムの可読性が落ちます。 return が ひとつの関数の中に複数あると非常に理解しにくくなります。 returnをいたる所に書くとプログラムの作成は楽ですが、その後の保守が大変になります。 returnはできる限り関数の最後に一つだけというのが基です。 個人でプログラムを楽しむ場合は自由ですが、 仕事でプログラムを作る場合は『作りやすいプログラム』 <『分かりやすいプログラム』を作るべきです。 対策: STEP1:returnの代わりにbreakを使う; STEP2:breakの直前でフラグを設定する。 STEP3:breakしたforループの直後でフラグをチェックし、その後の処理の有無などを変えるようにする。 以上 nogue_0さんへ 説明が足りなかったようですみません。 >フラグ変数の多用はプログラムの可読性を下げないのです

    C言語でfor文の中からreturnで抜けることに問題はあるでしょうか? - 昔、「for文の中からbreakで抜けるのは良... - Yahoo!知恵袋
    kiyo_hiko
    kiyo_hiko 2012/06/04
    ボロいコードを書く人々はあちこちでreturnするなというけど、ちょっと理由がわかった気がする。メソッドのシグネチャーがボロいので返却値を置き換えようとしたら、あちこちにreturnあるんで修正忘れてないか不安になる
  • 1