先日、徹夜明けの、めちゃくちゃの疲労状態で、コーディングしてデバッグしてました。
で、一つの処理を書き終え、コンパイルもノーエラーで、では、動かしてみましょう…とやってみたのですが。
動かない、、、あれ? なんだ? コーディングへん? コンパイルはとおるよ?
・・・ん~、まったく通るべき処理を通らない。 あぅ~!!!
で、そのコーディング
・・・ switch(state) { STATE_A: STATE_B: STATE_Z: if(flag == A) { j = func(a, b, c); break; } default: j = ERR_STR; break; } ・・・
何度、眺めても分からない…、 どちて? どちて?
という具合で、小一時間も、あれやこれやといぢくりまわして…
あ”~!!! case が無いだろーーーー!!!
orz..... あんだよぉ~ 劇疲労モードなんですね・・・ 今日は、ねよ・・・zzz
しっかし、コンパイル・エラーがでないし、、、 Cは、どう翻訳してるんだろう?
X = Y ? A : B;
その延長での解釈なんだろーか? 考えるのも疲れるような、お話ですな。
ふふふ、なんか、やっちまった…
・・・ set_data(position, 0L); ・・・
という、第2引数を、positionに設定するという関数があり、上記のようにコーディングしたんです。
そう、positionを0クリアしたいのね。
で、、、、、ぜんぜんクリアされない!んですよ。 あんで?
そう、聡明なアナタは、気が付いたでしょ?
この関数…
void set_data(int position, void *data);
だったんですよ...0Lはデータでもポインタでも同じ扱いであります...
つまり、この関数は、positionに0番地の値をコピーしてたんですね、はいはい、わかりました…orz