アカウント名:
パスワード:
その部分って
if (x != 0)
なにか勘違いしてません?unsigned char を使うのがダメだっていっているんじゃなくて、unsigned 変数が負であるか調べるのが変だっていう話だと思うんですけど。
それとも実際に、if (x != 0) と書く代わりに if (x < 0) と書く方が効率が良いワンチップ系のプロセッサがあるんでしょうか?いくらワンチップ系がプアな用件で動かさなきゃいけないし多種多様とはいえ、Zero flagまで省略した実装があるとは思えません。あったとしても例えばテーブル参照なんかのありがちな場面で、かなり非効率になると思うんですが。
ほぼ同じ状況ですね. しかも驚くべきことにこれが1年半前に完全に新規作成されたソースだってこと. 私は10何年ソフトウェアを扱っていて, 初めて絶望という物を味わいました. 現在せめてもの望みは私がこれにかかわったという一切の痕跡を消し去ることです.
完全新規に書き直した方が今後の累積テスト工数を考えれば良いのは確実なんですが, それ以前に本番開始1年以上たっているのに要求仕様が明文化されていないので何をかいわんやなんですが.
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
仕事だと… (スコア:1)
あんまりサイズが大きくなければ、「書き直したほうが早い!」としちゃうこともあるけど、
何人月かかかりそうなのはそうも行かなくてね…
そういう場合に出来ることは、「吐く」ことぐらいだよなあ…
Re:仕事だと… (スコア:1)
んで、修正する際も、見栄えや構造を優先するのではなく、その場での修正行数や、試験項目の少ない修正を選ばされるから、その調子で10年もメンテされたソースは大変さぁ…
#修正履歴もすべてコメントで残すから、もとの倍以上のソースサイズなんてザラだし。
#書き直した方が早く(速く)ても、書き直したソースにより発生する試験の工数まで考えると無理な場合がほとんど。
お陰で、ソース読解用のマクロや、脳内インデントが洗練されました。
ま、そもそも、自分もそんな綺麗なソース書かないけど。
#80×25文字にどれだけの機能を盛り込むか?とかが得意な人間だったので。
こんな事がありますた (スコア: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
Re:仕事だと… (スコア:1)
ほぼ同じ状況ですね. しかも驚くべきことにこれが1年半前に完全に新規作成されたソースだってこと. 私は10何年ソフトウェアを扱っていて, 初めて絶望という物を味わいました. 現在せめてもの望みは私がこれにかかわったという一切の痕跡を消し去ることです.
完全新規に書き直した方が今後の累積テスト工数を考えれば良いのは確実なんですが, それ以前に本番開始1年以上たっているのに要求仕様が明文化されていないので何をかいわんやなんですが.
Re:仕事だと… (スコア:0)
でも、改良したつもりでバグを量産しそうなので・・・
ごめんなさい。