C/C++のポインタ変数の宣言には、大まかに分けて2つの流儀がある(と思う)。1つは
int *p;もう1つは
int* p;違いはスペースの位置。個人的には前者のスタイルなのだが、これは*が変数を修飾するものだから、という理由。後者のスタイルでは、*はintという型を修飾するものだという考え方なのだろう。
int *p, i;という変数宣言では*は変数pのみを修飾しているので、この点からは前者が正しいように見える。ところが
(int *) xxのようなキャスト演算では、*は明らかにintを修飾している。なので、結局どちらとも言い切れないのが、この悩ましさの元凶なんだよなぁ。
reinterpret_cast<int *>(xx)
C++リファレンスを表す&も同様なんだけど、こっちは
int& r = i;のように型に付ける方が主流派な気がして、変数修飾派はなんとなく肩身が狭い。
0 件のコメント:
コメントを投稿