函数和宏之间的区别

我想知道使用宏而不是声明函数的好处。

例如,我在ATMEL微控制器的USB库的头文件中找到以下行:

#define  udd_detach_device()                 ( Clr_bits(UDP->UDP_TXVC,UDP_TXVC_PUON))

为什么这样定义而不是像函数?

谢谢您的帮助。

zhangwenxiu_1923_com 回答:函数和宏之间的区别

#define所做的所有工作都是用以下文本udd_detach_device()替换您来源中( Clr_bits(UDP->UDP_TXVC,UDP_TXVC_PUON))的每个文本出现。

这是在所谓的预处理阶段,即在编译代码之前完成的。

您应该将此C预处理程序(CPP)阶段视为一个文本编辑阶段,在其中可以替换或忽略部分代码。 CPP识别有限的所有以#开头的编辑命令。

阅读this Wikipedia page了解更多背景信息。

本文链接:https://www.f2er.com/3137651.html

大家都在问