我有一个宏定义:
#define MY_PREFIX prefix_
然后我希望定义具有连续的结果。我尝试了以下方法:
#define MY_NAME1 MY_PREFIXsuffix // Evaluates to 'MY_PREFIXsuffix'
#define MY_NAME2 MY_PREFIX ## suffix // Evaluates to 'MY_PREFIXsuffix'
#define MY_VAL(val) val // Intermediate macro
#define MY_NAME3 MY_VAL(MY_PREFIX)suffix // Evaluates to 'prefix_ suffix'
#define MY_NAME4 MY_VAL(MY_PREFIX) ## suffix // Evaluates to 'prefix_ suffix, preprocessor complains
#define CONCAT(a, b) a ## b
#define MY_NAME5 CONCAT(MY_PREFIX, suffix) // Evaluates 'MY_PREFIXsuffix'
我认为这应该很简单。有什么想法吗?
所需的输出应该是MY_NAME评估为' prefix_suffix' (没有引号)