アカウント名:
パスワード:
その部分って
if (x != 0)
なにか勘違いしてません?unsigned char を使うのがダメだっていっているんじゃなくて、unsigned 変数が負であるか調べるのが変だっていう話だと思うんですけど。
それとも実際に、if (x != 0) と書く代わりに if (x < 0) と書く方が効率が良いワンチップ系のプロセッサがあるんでしょうか?いくらワンチップ系がプアな用件で動かさなきゃいけないし多種多様とはいえ、Zero flagまで省略した実装があるとは思えません。あったとしても例えばテーブル参照なんかのありがちな場面で、かなり非効率になると思うんですが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
仕事だと… (スコア:1)
あんまりサイズが大きくなければ、「書き直したほうが早い!」としちゃうこともあるけど、
何人月かかかりそうなのはそうも行かなくてね…
そういう場合に出来ることは、「吐く」ことぐらいだよなあ…
Re:仕事だと… (スコア:1)
んで、修正する際も、見栄えや構造を優先するのではなく、その場での修正行数や、試験項目の少ない修正を選ばされるから、その調子で10年もメンテされたソースは大変さぁ…
#修正履歴もすべてコメントで残すから、もとの倍以上のソースサイズなんてザラだし。
#書き直した方が早く(速く
こんな事がありますた (スコア:2, おもしろおかしい)
unsigned char x;
...
if(x0){
...
漏れ「あの、ヘンなコードがあるんですが」
上司「あぁ、動いてるモノだから直さないでね」
漏れ「...( ゚Д゚)ポカーン」
Re:こんな事がありますた (スコア:1)
日曜プログラムにはunsigned char に数を入れて使いますよ。
#つっこみどころ、違いますね。
(unsigned char) < 0
( ゚Д゚)ニョガーン
#使い方にもよりますが、よく動いてますね。
Re:こんな事がありますた (スコア:1)
その部分って
と同じですよね。まあたまたま動くのは不思議じゃないかも。ただ、そんなことを書くスキルの人と一緒に仕事をしたくないというのはあるかも知れません。ましてやその修正を拒否されるってのは信じがたいですね。vyama 「バグ取れワンワン」
Re:こんな事がありますた (スコア:0)
x を実際の値に置き換えてみると
if (0 0) は False
if (1 0) は False
・・・
if (255 0) は False
となってこの if文は then節をコメントにしているだけです。
8ビットorワンチップ系マイコンの場合... (スコア:1)
もっとも、紛らわしいことは確かなので、
#define BYTE unsigned char
BYTE a;
とでもして、数値だぞと主張した方がメンテはしやすいですし、組込みコンパイラでも気の利いたものはバイト型整数なんてものがサポートされています。
Re:8ビットorワンチップ系マイコンの場合... (スコア:1)
なにか勘違いしてません?unsigned char を使うのがダメだっていっているんじゃなくて、unsigned 変数が負であるか調べるのが変だっていう話だと思うんですけど。
それとも実際に、if (x != 0) と書く代わりに if (x < 0) と書く方が効率が良いワンチップ系のプロセッサがあるんでしょうか?いくらワンチップ系がプアな用件で動かさなきゃいけないし多種多様とはいえ、Zero flagまで省略した実装があるとは思えません。あったとしても例えばテーブル参照なんかのありがちな場面で、かなり非効率になると思うんですが。
vyama 「バグ取れワンワン」
Re:8ビットorワンチップ系マイコンの場合... (スコア:0)
変数が負の値をとったりするんですか?
Re:8ビットorワンチップ系マイコンの場合... (スコア:0)
>変数が負の値をとったりするんですか?
んなわけねぇ。
(unsigned long) < 0 でも話は同じだぞ>親親記事
Re:8ビットorワンチップ系マイコンの場合... (スコア:1)
実は #ifdef とかの代りだったりして.
(別にC言語だと明記してなかったはず.)
Re:8ビットorワンチップ系マイコンの場合... (スコア:0)
お作法的には「UBYTE」が正しくないかな。
Re:こんな事がありますた (スコア:0)
x0→x<0