[792] Re:ポインタ完全制覇
投稿者:774RR
2007/02/20 02:13:25
>もしsetjmp/longjmpがcreate_jmp()してから使うような形であったら、&なしがきれいですよね。
御意。
> 今まで考えなしに付けてなかったですけど、概念的には付けるべきだったのかしら。
俺なんかはその昔の &array が規定されてなかった頃からCをやってる人ですから
「配列名が先頭要素へのポインタに変換される」仕様が本能レベルで染み付いているので
memset 等のポインタが必要な関数が使われてて引数に & が無い場合にはむしろ
「& がないから、これって配列なんだ」と解釈しがちな傾向がありますな。
# よく読んだら、ポインタ変数だったりすると後からびっくり。
概念的には & があるべきなのだと思う。ただ歴史的事情により
配列であることが明確な場合には & を書かないソースのほうが圧倒的多数だと思います。
> 例えば「配列へのポインタ」と「配列の先頭要素へのポインタ」の
> 表現方法が異なるような処理系において
> ...では、やっぱりmemset()の使用は推奨されないのかなぁ?
void* は、内部表現が最大サイズとなるポインタを保持できなければならず、なおかつ、
必要な時には内部表現を失わずに元の型に戻せることが必須とされていますから、
問題ないです(問題あったら大変だ)
# テスト略