2011-10-13 7 views
1

C++のinit-declaratorと宣言子の違いは? init-declaratorは、init-declarator-listに現れます。例:C++の宣言子

int x, y, z; 

又は

int x; 
    int y; 
    int z; 

X、Y、Zは、INIT-宣言子であってもよいし、iは宣言子を言う必要がありますか?ここで

答えて

7

は文法です:

init-declarator-list
              init-declarator
              init-declarator-list , init-declarator
init-declarator
              declarator initializerであるオプト

init-declarator-listが複数の変数の宣言を含んでいてもよく、init-declarator必見は、1つの変数の宣言が含まれています。

意味し、あなたのケースでは、最初のコードはinit-declarator-list及び第二のコードである(init-declarator-listは、単に1つの宣言を含んでいてもよいため、及びinit-declarator-list両方)init-declaratorあります。

しかし、あなたが何と呼んでいるかはどうですか?毎日の使用では、この違いはほとんど無視できます。

しかし、コーディングスタイルについて知りたい場合、異なる人々が変数を別々に宣言します。私は多くを見た良い両方のスタイルを使用しているプログラマ。あなたのグループ、上記のように彼らなら、私は通常、1つは、最初のグループを認識することにより、単に各変数の意味を理解することが容易になり、例えば、同じ宣言リストに

int x,y,z; //point coordinates 
int height, width; //dimensions 
std::string firstname, lastname; //name parts 
int left, top, right, bottom; //rectangle coordinates 

を、関連するすべての変数を記述します。また、各宣言リストに対して1つのコメントを使用する方が簡単です(上記と全く同じです)。それはまた、メンテナンスをある程度まで助けますが、おそらくそれほど多くはありません。

+0

純粋なスタイルの設定ですが、それらをグループ化するのは好きですが、それぞれの変数/オブジェクトごとに独自の行にそれぞれ異なるinit-declaratorを作成するのが好きです。変数の名前が自己文書化していない場合、私はグループ化の上に直接コメントを置きます。 –

+1

私はこれがinit-declaratorだけをカバーしていると思いますが、宣言子は非常に異なる意味を持っています。 – user103214