54

私は C プログラミングの初心者で、struct型宣言とtypedef構造体宣言の違いを知っています。structlikeを定義すると、次のような答えが見つかりました。

typedef struct { 
    some members;
} struct_name;

次に、匿名構造体にエイリアスを提供するようなものになります (タグ名がないため)。したがって、前方宣言には使用できません。前方宣言の意味がわかりません。

また、次のコードについて知りたかったのです。

typedef struct NAME { 
    some members;
} struct_alias;

と の間に違いはNAMEありstruct_aliasますか? struct_aliasそれとも、構造体 NAME のエイリアスのように、両方とも同じ ですか?

struct NAMEさらに、次のような型の変数を宣言できますか。

struct_alias variable1;

および/または次のように:

struct NAME variable2;

または好き:

NAME variable3; 
4

5 に答える 5

8

struct_aliasstruct NAMEは同じです。struct_aliasはへのエイリアスですstruct NAME

これらは両方とも同じであり、許可されています

struct_alias variable1;  

struct NAME variable1; 

これは違法です

NAME variable3;   

Forward宣言に関するこの記事を参照してください

于 2013-09-06T13:03:05.357 に答える