2011-01-05

http://anond.hatelabo.jp/20110105153756

それはON/OFFじゃなくて?

true/false は真偽値なので

if(false){

}else{

}

がelse節になる必要がある。

if(local_false){

}else{

}

にthen節なるようなfalseを定義するべきじゃない。

回路の1/0判定については ON/OFFを割り当てるべきでtrue/falseを割り当てるのはそれこそ、プログラム概念設計ミスだとおもわれる。

そのために

if(value==local_false)

なんて毎回やるのは、さらに 混乱のもと

if(value==local_on)

ならば、誰でも混乱はしない。

 

なぜON/OFFの定義をすべきところを falseを使う?

falseは真偽値というコンパイラが使う値であって ハード固有値を割り当てて良いものはないと思われる。

 

大げさに表現すれば、

typedef long local_short

typedef short local_long

という定義も可能だが

sizeof(local_long) < sizeof(local_short)

なんていう定義をするべきではない。

ローカルFalseはこれに近い。既存コンパイラが定めている概念を ひっくり返すようなローカル定義は この時代ではするべきではない。

 

#define HARD1_ON 0

#define HARD2_ON 1

これは必要。

 

#define HARD1_FALSE 1

これは害悪

 

組み込み書いている人を見るといつも思うんだが組み込み以外の人がヘルプで読むときのことを考えてルールを作れと思う。

どこの鎖国プログラマだと。

記事への反応 -
  • #ifdef XXX #define false 0 #endif ならわかる #ifdef XXX #define my_false 0 #endif みたいなひとは何がしたいんだろう・・・ 後発企画への互換性とか考えないんだろうか・・・ 大きなシステムで、独自...

    • 一応書いておくが、組み込みでは意味がある時もある。 回路上の1/0なんてちょっとした改修ですぐに変わるからね。 特定のハードモジュールに対する判定をパッケージとして閉じ込める...

      • それはON/OFFじゃなくて? true/false は真偽値なので if(false){ }else{ } がelse節になる必要がある。 if(local_false){ }else{ } にがthen節なるようなfalseを定義するべきじゃない。 回路の1/0判定について...

        • C言語にTRUE/FALSEなんて仕様ないんですけど。

          • だから、後発企画=C++へのコンパチビリティでしょ? #define false 0 としないで #ifdef XXX #define false 0 #endif とするか? なんで、ifdefで定義そのものをOFFれるかっていうと、まれにfalseを理解...

            • おれは組み込み云々を書いた増田なんだが、もともと「my_false」の話してたよね? そういう独自定義の話でないの? そりゃ組み込みなら普通はON/OFFと表現するが、「#define OFF 0」とかあん...

              • たぶん、元増田さんは、言語仕様としてのBOOL値を独自定義するなと言いたかったのだろうけれど。 やった人が、BOOL値として考えてmy_falseを定義したかどうかは微妙だよね。 むしろmy_false...

                • たぶん、元増田さんは、言語仕様としてのBOOL値を独自定義するなと言いたかったのだろうけれど。 そうではなくて、独自規格から始まったものが後日改変されて、正しく定義され規...

      • 組み込みの世界ってキモイなー 絶対触りたくないな…

        • 組み込みの世界ってキモイなー テスト基盤と実機基盤で判定が逆とか普通にあるし、電圧判定の閾値が違うとかもざら。 テストと実機で同じコードが使えるように、大抵のものは置き...

    • 「いまどき」というならC99だしこうなんだが…。 #include <stdbool.h>int main() { { bool a = false; // 0 bool b = 0; // 0 bool c = true; // 1 bool d = 1; // 1 bool e = 2; // 1 ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん