使用" struct"进行struct实例化关键词

时间:2012-10-08 00:52:36

标签: c++ struct keyword declaration instantiation

假设我声明了一个新的C ++结构类型:

struct my_struct {
   int a;
   int b;
};

我可以通过以下方式创建此结构类型的新实例:

my_struct foo;

struct my_struct foo;

如果两者都有效,那有什么不同吗?

2 个答案:

答案 0 :(得分:14)

是的,你可以使用任何一种方法。不同的是这种形式:

my_struct foo;

在C中不合法,因此您必须使用此表单:

struct my_struct foo;

C ++支持与C的向后兼容性。

答案 1 :(得分:2)

两者都有效。第二个工作的主要原因是与C兼容:在C中,第一个不起作用。因此,struct通常在C中typedefstructtypedef有两种不同的名称。