CATEGORY:C/C++
今更仕事でCを書くとは思ってなかったのですが、どうなんですかね?初めて仕事に就いたときからの流れだとC/C++からC#へ、という感じなんだけど、ガベージコレクタが当たり前になったあたりから『もうメモリ管理とか自分でやるのめんどいス』と思ってたですよ。で、いざCへと戻ったら、どうだろう?それほど面倒じゃないのです。あれ?
いや、面倒じゃないってのはあくまでアロケートとか解放とか、リーク云々の話だけで、実際面倒なのはバッファが固定長だというトコなんですな。いや、言い方がおかしいか。標準ライブラリを使うと、ライブラリはバッファのサイズなんて全然気にしてくれないから、例えばstrcpyじゃなくてstrncpyを使いなさいね、なんて事になったりするじゃないですか。で、じゃあサイズを指定しさえすればバッファオーバーフローは起きないから万事OKか、というとそうでもないし。そのサイズに収まりきらない何か、例えば情熱だったりね、うん。まあそういうものの扱いをどうするとか考えなきゃいけない訳で、さらには最適なサイズってどんぐらい?とかね、なんだかもう鬱陶しい。正規表現とか使おうと思っても検索だけで置換は自力じゃないですか。多分。
とまあね、メモリ管理を言語側でやってくれないって事に起因する文字列処理の面倒さ、つまり文字列が可変長でない事と標準ライブラリが(当然だけど)それに沿って作られていることがもう、面倒でしょうがない。勝手にバッファサイズをグニョーンとか伸ばしてくれないのが、もうダメだ。
仕事の補助的なツールなんかをperlで書いたりするとね、すげー楽。天国。perl万歳とか思っちゃうもの。一度楽な方に流れると、もうイカンですな。