アカウント名:
パスワード:
世の中はCでできている。WindowsだってLinuxだってアメンボだって、みんなみんなCでできている。
プログラミング言語だってCでできている。PythonだってRubyだってオケラだって、みんなCでできている友達なんだ。
アメンボとオケラのCは炭素では?
Cの難易度が誇張されているように思うのだが。Javaより難しい?
間違ったコードが間違ったまま動くから、独習するのは難しいと思います。Cだけ学ぶより、CPUやコンパイラをセットで学んだほうが楽だと思えるぐらい。
先日某所で char number[sizeof(int)]; というブットビコードを見かけました。整数を一旦文字列にしようと思ったらしいですが、スタック壊しながら動いちゃいますから、初学者は何が悪いか気がつきませんよね。
ごめんなさい、別コメでも補足しましたが、その後に
sprintf(number, "%d", some_small_integer);
ってのが来るのです。整数が3桁までなら動いているので、その時点で何がおかしいかを知る手段はない。ですが、4桁目まで使ってしまうとスタック壊しますよね。メモリの置き方によってはこれでも動いてしまう場合があるのですが、こことは直接無関係な変更をした瞬間に動かなくなって、どこが原因だかわからなくなってハマっている、なんてこともしばしば。
実際人のこと言えず、配列を踏み越えちゃったり解放したメモリへの参照が残ってたり、なんてケースではバグの発生条件が不確定だったりバグを顕在化した変更とバグの原因が遠かったりで、なかなか大変な目に遭うことも。ええ、僕自身が「Cのプロジェクトで一緒になりたくない」存在かもしれませんね…orz
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
CはCでも・・・ (スコア:5, おもしろおかしい)
世の中はCでできている。WindowsだってLinuxだってアメンボだって、みんなみんなCでできている。
プログラミング言語だってCでできている。PythonだってRubyだってオケラだって、みんなCでできている友達なんだ。
アメンボとオケラのCは炭素では?
Re: (スコア:0)
Cの難易度が誇張されているように思うのだが。
Javaより難しい?
Re: (スコア:0)
間違ったコードが間違ったまま動くから、独習するのは難しいと思います。
Cだけ学ぶより、CPUやコンパイラをセットで学んだほうが楽だと思えるぐらい。
先日某所で char number[sizeof(int)]; というブットビコードを見かけました。
整数を一旦文字列にしようと思ったらしいですが、スタック壊しながら動いちゃいますから、初学者は何が悪いか気がつきませんよね。
Re: (スコア:2)
#釣り?
なんら、変な所ないのですが・・。
>整数を一旦文字列にしようと思ったらしいですが、スタック壊しながら動いちゃいますから、初学者は何が悪いか気がつきませんよね
盛大な釣り?
閑話休題
Re: (スコア:0)
ごめんなさい、別コメでも補足しましたが、その後に
sprintf(number, "%d", some_small_integer);
ってのが来るのです。整数が3桁までなら動いているので、その時点で何がおかしいかを知る手段はない。ですが、4桁目まで使ってしまうとスタック壊しますよね。メモリの置き方によってはこれでも動いてしまう場合があるのですが、こことは直接無関係な変更をした瞬間に動かなくなって、どこが原因だかわからなくなってハマっている、なんてこともしばしば。
実際人のこと言えず、配列を踏み越えちゃったり解放したメモリへの参照が残ってたり、なんてケースではバグの発生条件が不確定だったりバグを顕在化した変更とバグの原因が遠かったりで、なかなか大変な目に遭うことも。ええ、僕自身が「Cのプロジェクトで一緒になりたくない」存在かもしれませんね…orz
Re:CはCでも・・・ (スコア:2)
> sprintf(number, "%d", some_small_integer);
うがぁ;;
笑えないですね;;。
そこで、「%*.」「%.*」「%*.*」とかを教えてあげましょう。
彼も一つのスキルを手に入れられます。
閑話休題