名前空間C言語

C言語はまた、名前空間は、4ビットのクラスの名前空間に分けることができました。

クラス4の名前空間:

  1. すべてのラベル(ラベル)が同じ名前空間に属します。説明:①同じ機能で、あなたは同じラベルを持つことができます。②同じ機能であり、他の変数は、同じ名前にラベルを付けることができます。彼らは異なる名前空間に属しているため。

  2. structenumそしてunion名前、C99でタグと呼ばれ、すべてのタグが同じ名前空間に属します。あなたが宣言しなかった場合つまり、struct A { int a }; もはや宣言するunion A{ int a };
    常に前のタグと同様のタグ形式の名前空間のすべて、理由structenumまたはunionキーワードなので、コンパイラは他の識別子領域からそれらを区別することができます。

  3. structそして、unionメンバーが名前空間に属し、互いに独立しています。たとえば:あなたはすでに宣言している場合はstruct A { int a }; 、そのメンバーの名前がされa、あなたはまだ宣言することができます  struct B{ int a };union B{ int a };理由structunion、それぞれのメンバーが名前空間になるが、そのメンバーなぜならアクセス、または必要にある「」。「 - >」演算子はなく、一人で、そう、彼らは他の識別子とすることができ、コンパイラ別の領域。列挙型ので、enumメンバーは単独で使用することができ、それがこの名前空間の列挙型のメンバーではありません。

  4. 他のすべての識別子は、同じ名前空間に属します。変数名、関数名、関数のパラメータ、マクロなど、typedef型名、enumその上のメンバー、および。注:これは、同じ名前の識別子が表示されている場合は、前処理段階ではなく、コンパイルの段階で扱っているため、マクロ定義は、他のすべての識別子をカバーします。マクロ定義識別子に加えて、処理ルールの他のタイプは:内部スコープは、スコープ識別子を囲む非表示にします。

通常、Cプログラムでは、このC言語が名前空間思ったことはありません書き込み、それが何を使用ですか?このため、「C言語インタフェースと実装」神は、広範な使用typedef struct T *T;この形式の(これTstruct T *)使用量は、特定続きます大会、C言語の規則を使用して、この簡単なコマンドでは、コードより洗練され、より良い可読性を行い、いくつかの利点を得ることができます。

その他の技術的なシェア:Virboxの技術のブログ


おすすめ

転載: blog.51cto.com/senseshield/2415666