我看到“字符串常量在'testFunction(45,UP)'之前的语法错误,'”
#define UP "UP\0"
#define DOWN "DOWN\0"
#define testFunction(intensity, direction) \
{ \
.force = intensity, \
.direction = direction, \
}
struct configureObject {
int force;
char direction[7];
};
static const struct configureObject configureFiles[] =
{
testFunction(45, UP),
testFunction(46, DOWN),
};
在main()
中 printf("force: %d\n", configureFiles[0].force);
printf("direction: %s\n", configureFiles[0].direction);
printf("force: %d\n", configureFiles[1].force);
printf("direction: %s\n", configureFiles[1].direction);
没有其他编译器提示。这个错误可能是什么原因? 谢谢。
答案 0 :(得分:2)
问题是您在{} <}中使用direction
来完成两件事:
.direction = direction,
两者都被替换。
尝试:
#define testFunction(intensity, dir) \
{ \
.force = intensity, \
.direction = dir, \
}
(这只是一个例子,可能是一个比dir
更好的名字。)