在节目编制期间,有三个主要阶段:
#include
,#define
等已被替换)我的问题是typedef
。正如我在预处理文件输出中看到的那样,typedef
ed类型不会被实际类型替换。
什么时候发生?是否可以获得已经替换的类型?
答案 0 :(得分:0)
简短回答:编译期间。
typedef
是由编译器评估和理解的构造,因此编译器是发出将tyedef数据视为原始类型所需的代码的构造。 AFAIK,它是如何做到的是实现定义而非Unspecifed。但是,重要的是所有必要的事情。
答案 1 :(得分:0)
正如我在预处理文件输出中看到的那样,typedefed typed不会被实际类型替换。
不,他们不是,因为他们只是一个类型的别名。
什么时候发生?是否可以获得已经替换的类型?
这是一个实现细节,但由于需要编译typedef,所以它在编译过程中完成。使用编译器或预处理器无法获得真实类型。唯一的方法是手动替换或查看代码。