假设我声明了一个新的C ++结构类型:
struct my_struct {
int a;
int b;
};
我可以通过以下方式创建此结构类型的新实例:
my_struct foo;
或
struct my_struct foo;
如果两者都有效,那有什么不同吗?
答案 0 :(得分:14)
是的,你可以使用任何一种方法。不同的是这种形式:
my_struct foo;
在C中不合法,因此您必须使用此表单:
struct my_struct foo;
C ++支持与C的向后兼容性。
答案 1 :(得分:2)
两者都有效。第二个工作的主要原因是与C兼容:在C中,第一个不起作用。因此,struct
通常在C中typedef
,struct
和typedef
有两种不同的名称。