小编DD.*_*DD.的帖子

使用##和__LINE__创建C宏(使用定位宏进行标记连接)

我想创建一个C宏,它创建一个名称基于行号的函数.我以为我可以做类似的事情(真正的函数会在括号内有声明):

#define UNIQUE static void Unique_##__LINE__(void) {}
Run Code Online (Sandbox Code Playgroud)

我希望将扩展到以下内容:

static void Unique_23(void) {}
Run Code Online (Sandbox Code Playgroud)

这不起作用.使用令牌连接,定位宏按字面处理,最终扩展为:

static void Unique___LINE__(void) {}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

(是的,无论这看起来多么无用,我都有一个真正的理由要这样做).

c macros concatenation token

103
推荐指数
1
解决办法
6万
查看次数

标签 统计

c ×1

concatenation ×1

macros ×1

token ×1