Cライクな言語でポインタ変数を宣言する際のアスタリスクの位置でどこの土壌でコーディングしてたかがちょっとわかりますよね。
書き方は大体3種類に分かれると思ってて
int *foo; // (1)
int* foo; // (2)
int * foo; // (3)
です。
まず、結論から言うと人それぞれでいいと思います。バグらなければ。
もちろんコーディングスタイルで決まっているならそれに沿うべきですが、(2)で記述した人が間違った解釈さえしなければどっちでもいい。バグらなければ。
(2) int* foo;
の副作用
副作用、ってほど大事ではないのですが、アスタリスクを型にくっつける人はint
とint*
を別として、それぞれが確立された型と認識していることがあります。
そうなるとどうなるか、下記のような勘違いを起こす可能性があります。
int *foo, *bar; // 両方ともポインタ変数
int* foo, bar; // fooだけポインタ変数、barは普通のint
これされるとバグの温床になる得る。
int* foo;
int* bar;
こうすればおk。
ちなみに
僕は (1) の int *foo;
派です。
また、Objective-Cの流儀は(1)です。(たしか
もしかしたら
コンパイラによって解釈違うのかもしれないですね。
(というより、昔なにかで見た気がするのですが、勘違いですかね?)
おまけ