5

新しい C++ 構造体型を宣言するとします。

struct my_struct {
   int a;
   int b;
};

次の方法で、この構造体型の新しいインスタンスを作成できますか?

my_struct foo;

また

struct my_struct foo;

両方が機能する場合、違いはありますか?

4

2 に答える 2

15

はい、どちらの方法でも構いません。違いは、このフォームは次のとおりです。

my_struct foo;

C では合法ではないため、次の形式を使用する必要があります。

struct my_struct foo;

これは、C との下位互換性のために C++ でサポートされています。

于 2012-10-08T00:55:05.970 に答える
3

どちらも機能します。2 番目の方法が機能する主な理由は、C との互換性です。C では、最初の方法は機能しません。その結果、structs は通常C で編集され、 s とstypedefには 2 種類の名前があります。structtypedef

于 2012-10-08T00:56:55.200 に答える