您好我有以下代码,应该展开以创建注册名称:
#define REG_VAL(base,reg,idx,fld) base##_##reg##_##idx##_##fld
如果我给idx一个0以外的其他值,这段代码工作正常,但当我将idx设为0时,宏没有正确扩展。有人可以指出这里有什么问题吗?
例如,我在头文件中有以下定义:
#define cpu_control_0_reset cpu_control_reset_global_reset_0
在我的.cpp文件中我想使用以下宏定义:
REG_VAL(cpu,control,1,reset)
所以这将正确地导致:
cpu_control_1_reset
但REG_VAL(cpu,control,0,reset)
会导致:
global_reset_0