DCL05-C. typedef による型定義ではポインタ型を避ける 型定義(typedef)を活用することで、コードを読みやすくすることができる。しかし、型定義によりポインタ型を導入する場合、const-correct なコードを書くためには注意が必要だ。なぜなら、const 修飾子がポインタ型に対して適用されるということを正しく理解することが難しいからだ。 違反コード 次のコード例では、型定義を行うことによりコードの可読性が向上しているが、const-correct なコードではなくなってしまっている。const 修飾子は typedef された型自体に適用されるものであり、元のオブジェクト型に適用されるものではない。したがって関数 func の引数は、const struct obj へのポインタではなく、struct obj への const ポインタである。 struct obj