0

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

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

#define REGW(x) RGS(x)

write_wdc(val);

现在我想知道何时调用 write_wdc,如何将其替换为这些宏。

4

1 回答 1

2

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

REGW(wdc)

在代码的某处,使用宏。以上将被预处理器替换为:

RGS(wdc)

这又将被替换为

static inline void write_wdc(u8 val) { }

我假设您的宏声明中也缺少函数的主体,我希望x = val;其中的内容能够真正实现写入。

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

于 2013-08-26T07:22:26.973 回答