Avatar ·

C++中struct和typedef struct的区别

你好!我是C++新手,刚从C转过来。在C中,我经常使用`typedef struct`,这样每次声明变量时就不用写关键字`struct`。例如: ```c // C代码 typedef struct { int x; int y; } Point; Point p; // 无需'struct'也能工作 ``` 现在我正在学习C++,看到很多人直接写: ```cpp struct Point { int x; int y; }; Point p; // 同样有效! ``` 让我困惑的是:在C++中,是否需要使用`typedef struct`,还是可以直接用`struct`?它们之间有什么区别?有没有什么情况下`typedef struct`仍然有用?或者这只是C语言的遗留习惯? 我在Visual Studio 2022中尝试了两种方式,都能编译通过。但我想知道哪种方式被认为是正确的,以及为什么。提前感谢你的解释! <<>>

主要区别:C++自动为结构体创建typedef

在C++中,关键字struct(以及class)会自动创建一个类型,该类型可以直接使用,无需额外的typedef。