如何使用这个通用函数

时间:2013-08-26 07:17:48

标签: c linux macros

我正在通过代码对某些寄存器进行了一些写操作。现在,他们将其作为通用函数,以便写入不同的寄存器必须通过相同的功能:

   #define RGS(x) \
     static inline void write_##x(u8 val) \
     { \
     }

#define REGW(x) RGS(x)

write_wdc(val);

现在我想知道何时调用write_wdc,它是如何被这些宏替换的。

1 个答案:

答案 0 :(得分:2)

这并没有显示实际使用的宏,为了使最后一行(调用)工作,还必须有类似的东西:

REGW(wdc)

代码中的某个地方,使用宏。以上内容将由预处理器替换为:

RGS(wdc)

反过来将替换为

static inline void write_wdc(u8 val) { }

我认为你的宏声明中也缺少函数的主体,我希望像x = val;这样的东西能够实现写入。

这使用##预处理程序运算符将单词“粘合”在一起。