C中的typedef和define有什么区别?


回答 1:

#define是在实际解析C / C ++之前应用的文本处理宏,而typedef是该语言中的一种简写机制。即#define根本不是C,您可以将预处理器用于其他作业。

m4(计算机语言)

元编程

为了更好地进行调试,C ++继续使用模板而不是宏。


回答 2:

#define是预处理器令牌:编译器本身将永远看不到它。typedef是编译器令牌:预处理器不关心它。

您可以使用其中一种来达到相同的效果,但是最好根据需要使用合适的一种

#定义MY_TYPE整数
typedef int My_Type;

当事情变得“令人毛骨悚然”时,使用适当的工具就可以解决问题

#定义FX_TYPE无效(*)(INT)
typedef void(* stdfx)(int);

无效fx_typ(stdfx fx); /* 好 */
无效fx_def(FX_TYPE fx); / *错误* /

伙计们“喜欢和分享”我的facebook技术/技术页面TechVedi


回答 3:

#define是预处理器令牌:编译器本身将永远看不到它。typedef是编译器令牌:预处理器不关心它。

您可以使用其中一种来达到相同的效果,但是最好根据需要使用合适的一种

#定义MY_TYPE整数
typedef int My_Type;

当事情变得“令人毛骨悚然”时,使用适当的工具就可以解决问题

#定义FX_TYPE无效(*)(INT)
typedef void(* stdfx)(int);

无效fx_typ(stdfx fx); /* 好 */
无效fx_def(FX_TYPE fx); / *错误* /

伙计们“喜欢和分享”我的facebook技术/技术页面TechVedi