Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在浏览对某些寄存器进行了一些写入的代码。现在他们将其作为通用函数,因此写入不同的寄存器必须通过相同的函数:
#define RGS(x) \ static inline void write_##x(u8 val) \ { \ } #define REGW(x) RGS(x) write_wdc(val);
现在我想知道何时调用 write_wdc,如何将其替换为这些宏。
这并没有显示实际使用的宏,为了使最后一行(调用)工作,还必须有类似的东西:
REGW(wdc)
在代码的某处,使用宏。以上将被预处理器替换为:
RGS(wdc)
这又将被替换为
static inline void write_wdc(u8 val) { }
我假设您的宏声明中也缺少函数的主体,我希望x = val;其中的内容能够真正实现写入。
x = val;
这使用##预处理器运算符将单词“粘合”在一起。
##