<

![endif]-->

fc2ブログ

C言語診断本

関数を丸ごと(囲って)();呼び出して初期化に使うとか、数年前までネット上のサンプルでも見られなかったJavaScriptの書き方がC言語では当たり前に使われていて、歴史の勉強みたいで結構面白い。

Folderオブジェクトの中のファイルに対してfor文で回したいとか、WScript.Networkでドライブのコレクションをforで回したいとか、そういうときはオブジェクトをわざわざEnumで列挙しないといけなかったのが、C言語の構造体でシンプルなenumがあるのを見て歴史を感じた。

あと、型キャストでビットが削れて元の状態が想像もできない値が出力されたりとか、文字列型は存在しなくてつまりcharの配列だからその参照渡しならぬポインタをそのまたポインタしてポインタのポインタのえとえと***とかなると、頭で数字をこねくり回して記述する面倒がいかにスクリプト言語でマスクされているのかに驚く。

変数の定義はJavaScriptならどこでもできるけど、Cでは{}で囲むブロックの先頭でしかできないというのは「おーっ」って思ったり。

でも、ここでわざわざmemset()してるのは何のためなんだ?とか、数行でできるような文字列をsubstringする関数すら標準でないのはなんで?っていう、C言語なるもの自体に対する疑問のような質問を人にぶつけると、それは構造体で定義しといてやったほうが速いものだから云々とサンプルを見せて説明してくれて、もう今日は「アッー!」ってなった。

C言語はどういう風に書かれるのが常識的で、どう書くのがセキュアだっていうポイントはネットを漁ってもあまり見えてこない。記法が似ているだけに、シンプルなサンプルはすぐ理解できた気になってしまってよくない。だめな書き方で、こうなってしまうからいけない、こう書くのが流儀なのだっていうのを知らなければならないと、今日も帰りにジュンク堂へ寄った。Cプログラミング診断室―さらに美しく健康的なプログラムのためにすべてのプログラマに効く 危険なプログラムの処法箋



comment

Secret

while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.