Tag:

使用##和__LINE__创建C宏(与定位宏连接的令牌)

我想创建一个C宏,根据行号创建一个名字的函数。 我以为我可以做一些事情(真正的功能将有大括号内的声明): #define UNIQUE static void Unique_##__LINE__(void) {} 我希望能扩展到如下的东西: static void Unique_23(void) {} 这是行不通的。 通过令牌连接,定位宏被字面处理,最终扩展为: static void Unique___LINE__(void) {} 这可能吗? (是的,有一个真正的原因,我想要做到这一点,不管这看起来多么无用)。