徒然雑記

恐るべし、C言語


その1

先日、徹夜明けの、めちゃくちゃの疲労状態で、コーディングしてデバッグしてました。
で、一つの処理を書き終え、コンパイルもノーエラーで、では、動かしてみましょう…とやってみたのですが。
動かない、、、あれ? なんだ? コーディングへん? コンパイルはとおるよ?
・・・ん~、まったく通るべき処理を通らない。 あぅ~!!!

で、そのコーディング

・・・
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;


その延長での解釈なんだろーか? 考えるのも疲れるような、お話ですな。

その2


ふふふ、なんか、やっちまった…

・・・
    set_data(position,  0L);
・・・


という、第2引数を、positionに設定するという関数があり、上記のようにコーディングしたんです。
そう、positionを0クリアしたいのね。

で、、、、、ぜんぜんクリアされない!んですよ。 あんで?

そう、聡明なアナタは、気が付いたでしょ?
この関数…

void set_data(int position, void *data);


だったんですよ...0Lはデータでもポインタでも同じ扱いであります...
つまり、この関数は、positionに0番地の値をコピーしてたんですね、はいはい、わかりました…orz

最終更新のRSS
Last-modified: 2010-03-26 (金) 14:35:58 3158日前
HTML convert time: 0.031 sec.