Saturday 10 December 2005

const   (fj.comp.lang.c)



C の追加の規格で嫌いなものの一つ。めんどくさい時は、#define const とかもやります。



まぁ、気分はわかるよ。inline とかで最適化しようと思ったら「自分で定数かどうかを判定する」ってのは極めて大変だから。でも大変さをプログラマに押しつけているだけなんじゃないの?



構造体のメンバにもconstとかを付けることも出来るし、const と * の相互作用とかもあるから、const を導入したことで型の複雑さは2乗になっていると思う。そこまで複雑にして得られるものは安全性ではなく、多少のCPU資源の節約かぁ。



volatile も納得できないです。volatile の方は付けるか付けないかでコンパイルが通るかどうかではなくて、動作が変わってしまう。型宣言で動作が変わるってのは、或る種の直交性を放棄している感じ。volatile ではなくて、明示的にオブジェクトの値を読み出す演算子を用意した方が良いと思う。



ちなみに塩山市って良くみるけど、どこにあるの?

No comments: