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

两者都有效。第二个起作用的主要原因是与 C 的兼容性:在 C 中,第一个不起作用。因此,structs 通常在 C 中编辑,并且s 和stypedef有两种不同的名称。structtypedef

于 2012-10-08T00:56:55.200 回答