0

構造体を宣言するこれらの2つの方法の違いは何ですか?

最初の方法:

struct x {};

2番目の方法:

struct _x {} x;
4

2 に答える 2

2

最初はタイプのみを定義しますstruct x。2番目はタイプstruct _x 定義し、。という名前のそのタイプの変数を定義しますx

おそらくあなたが考えていたものではありませんが、アンダースコアで始まる名前_xはファイルスコープで予約されているため、これが他のスコープ内にない限り、2番目の名前の動作は未定義です。

于 2012-11-30T18:49:09.367 に答える
2

struct _x 2番目の方法は、typeという名前の変数と、という名前のこのタイプの変数を宣言しますx。最初のものはタイプを宣言するだけstruct xです。

2番目の方法は基本的にと同じです

struct _x{};    // define a type
struct _x x;    // allocate a variable of type struct _x
于 2012-11-30T18:49:23.693 に答える