2011-02-07 12 views
2

可能性の重複定義:構造体に

struct a{ 
... 
} 

typedef struct{ 
... 
} a; 
:違いは

Difference between 'struct' and 'typedef struct' in C++?

何であるかを

?あなたは、単にC++でa my_struct;

+4

正確な複製:http://stackoverflow.com/questions/612328/difference-between-struct-and-typedef-struct-in-c – badgerr

+0

私はそこに1つはないと思うtyを定義するpeは 'a'という名前ですが)、最初はもっとシンプルで慣用的です。最初のバージョンで 'a 'ではなく' struct a'と呼ばれる型を定義しているCコードでは、2番目のバージョンが表示されることがあります。 – Philipp

答えて

2

を言う後者でstruct a my_struct;を言わなければならない宣言するには、まず

+0

'struct a instance;'構文はC++でも有効であることに注意してください。 'a'が' class'として宣言されていれば、 'class a instance;'と書くこともできます。 –

+0

é: 'a'が' struct'で定義されていれば 'class a'と書くこともできます。 – Philipp

0

、違いはありません。

int main (int, char **) 
{ 
    struct a instance; 
} 

変数宣言内の冗長structを避けるためには、前述のtypedefの使用が必要とされことができます:Cには、しかし、あなたが必要

struct a { ... }; 

の使用は、変数を宣言するために、次の使用しますa instance;構文のみを使用する

+2

Cでは、はい。 C++では、いいえ。 – delnan

+0

@delnan:あなたは正しいです、私は近すぎるCをやってきました。このようなものがおそらく私のC++コードに侵入したと思います。 –