我想创建几个形式的变量:
static char fooObjectKey;
static char bazObjectKey;
static char wthObjectKey;
static char myObjectObjectKey;
...
Run Code Online (Sandbox Code Playgroud)
所以我写了
#define defineVar(x) static char #x ObjectKey
defineVar(foo);
defineVar(baz);
defineVar(wth);
defineVar(myObject);
Run Code Online (Sandbox Code Playgroud)
但我得到错误: Expected identifier or }
我在这做错了什么?:)任何帮助表示赞赏
你需要连接它们:
#define defineVar(x) static char x##ObjectKey
Run Code Online (Sandbox Code Playgroud)
说明:
预处理程序运算符##提供了一种在宏扩展期间连接实际参数的方法.如果替换文本中的参数与##相邻,则参数将替换为实际参数,##和周围的空白区域将被删除,并重新扫描结果.例如,宏粘贴连接其两个参数:
#define paste(front, back) front ## back
所以paste(name, 1)创建令牌name1.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |