タグ

ブックマーク / proger.blog10.fc2.com (2)

  • ルールを破る時のルール - 職業としてのプログラミング

    以前、はてなの伊藤さんのブログ(naoyaのはてなダイアリー)でエアコンの設定温度を例に「ルールが一人歩きする」という記事がありました。この中で、満員の図書館でエアコンの設定温度を下げてくれというお願いに対し、設定温度は決められているでと言って下げてくれなかった、という話がとりあげられています。「手段」であるはずのルールが「目的」になってしまった典型的な例です。まさに「ルールの一人歩き」です。 さて、これはルールに盲従してしまっている例、言い方を変えると間違った「ルールの守り方」をしている例です。しかし、逆にルールの間違った「ルールの破り方」もあります。最近ちょうどそのような経験をしたのでちょっと書いてみます。 ソフトウェア開発でいうルールと言えば、コーディング規約等もプログラミング上のものから、リーリス方法等を規定したプロジェクト管理上のものまで様々あります。 プログラミング言語の文法も

    nhayato
    nhayato 2016/12/07
  • volatileで最適化を抑制する - 職業としてのプログラミング

    C言語やC++,Javaにはvolatileという修飾子があります。組み込み系ソフトウェアやマルチスレッドのアプリケーションを書いている方にとっては、なじみ深い存在ですが、そうでない方にはあまり縁がないのかもしれません。しかし、volatileの使い方や存在意義を知らないままコーディングを行うと、思わぬバグを引き起こす場合があります。今回は、そのvolatileキーワードについて簡単に説明したいと思います。 volatileは初期のCであるK&Rには含まれていませんでしたが、ANSI C(C89)以降のC標準規格にはconstと一緒に含まれるようになりました(constとvolatileをあわせてcv修飾子と呼ぶこともあります)。一般的なCなら必ず備えている修飾子です。 volatile修飾子の意味ですが、「プログラミング言語C ANSI規格準拠」によると、 volatileの目的は,黙っ

    nhayato
    nhayato 2012/10/10
  • 1