C言語出来るって言いませんでした?
感覚でプログラム書く人なんているんだなぁ。
と、言うのも、昨日
char* hoge(); ... void piyo() { char firstCh; ... firstCh = hoge()[0]; ... }
こんなコードを書いたら、「そんなコード通らないでしょ」と。
なんで?と聞いたら、「いや、普通に考えて無理でしょ」と。
普通ってなんだよ。
ほかにも、id*1に入った数値を16進数の文字列に変換するコード
for (i = 0; i < SIZE; i++) { sprintf(tmp, "%X", id[i] >> 4); buf[i * 2] = tmp[0]; sprintf(tmp, "%X", id[i] & 0x0f); buf[i * 2 + 1] = tmp[0]; }
があって、実際はidには逆順で入っていたことがわかって書き換えたコードがこれ。
for (i = SIZE - 1; i >= 0; i--) { sprintf(tmp, "%X", id[i] >> 4); buf[i * 2] = tmp[0]; sprintf(tmp, "%X", id[i] & 0x0f); buf[i * 2 + 1] = tmp[0]; }
・・・もうやめて。
ほかにもこんなやりとりが。
俺「末尾に\nつけてー」
彼「わかった」
"hoge piyo\\n";
俺「あー、そうじゃなくて改行コードの・・・」
彼「あー、そっちね」
"hoge piyo\0";
俺「・・・いや、だから\nだってば」
彼「え?何か違った?」
俺「・・・」
極めつけはこれ。
彼「このコードなんだけど・・・」
俺「ちょ、なんでcharと文字列比較してんだよ」*2
彼「え、これじゃ動かないの?」
俺「ダブルクォートは文字列で、文字はシングルクォートじゃないと駄目でしょ」
彼「あれ、そうだっけ?」
C言語わかってないじゃん・・・