com*_*ler 2 c typedef c-preprocessor
#define T Stack_T
typedef struct T *T;
Run Code Online (Sandbox Code Playgroud)
那么,什么是T在struct T平均,一个是定义#define或typedef?
#define 在编译过程的早期,指令被替换(转换阶段4,直到阶段7才实际编译,这些阶段及其中发生的事情在标准的第5.1.1.2节中详细说明).
这只#define会将T预处理令牌改为Stack_T.
这typedef对它的影响将变成:
typedef struct Stack_T *Stack_T;
Run Code Online (Sandbox Code Playgroud)
接下来,Stack_T定义为一种类型,指向另一种类型的指针struct Stack_T.该Stack_T和struct Stack_T是两回事.
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |