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