首页  >  文章  >  后端开发  >  为什么我不能在 C 中转发声明 Typedef ?

为什么我不能在 C 中转发声明 Typedef ?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-23 20:27:10668浏览

Why Can't I Forward Declare a Typedef in C  ?

C 中 Typedef 的前向声明

从直觉上看,typedef 的前向声明是可能的,因为它是一堂课。但是,编译器不会允许这样做。相反,有必要转发声明 typedef 引用的类型。

例如,假设我们要为名为 A 的类创建一个 typedef:

typedef A B; // error: 'A' was not declared in this scope

要解决此问题,我们必须首先向前声明类 A:

class A;

typedef A B; // valid

这允许我们稍后在代码中引用类型 B,即使 A 的完整定义是还不知道。

最小化包含树的最佳实践

由于我们无法转发声明 typedef,因此保持包含树较小的最佳实践是仅包含标头当前编译单元所必需的。这可以通过使用包含防护并仔细管理标头之间的依赖关系来实现。

以上是为什么我不能在 C 中转发声明 Typedef ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn