C++ 编程中“struct”和“typedef struct”有何不同?


基本上,struct 用于定义一个结构。但是,当我们想要使用它时,在 C 中必须使用 struct 关键字。如果我们使用 typedef 关键字,便可以创建一个新名称,无需编写 struct 关键字即可用该名称使用 struct。

在 C++ 中,“struct”和“typedef struct”没有区别,因为在 C++ 中,如果名称不因具有相同名称的另一个声明而被隐藏,则所有的 struct/union/enum/class 声明都会像被隐式 typedef 过一样起作用。

尽管有一个细微的区别,即 typedef 不能被前向声明。因此对于 typedef 选项,你必须在任何地方使用它之前包含包含该 typedef 的文件。

更新于:2019 年 7 月 30 日

5 千次以上浏览

开始你的职业生涯

完成该课程即可获得认证

开始
广告