gpt4 book ai didi

c - 字符串常量前的语法错误

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:32 25 4
gpt4 key购买 nike

我在“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),
};

在主函数中

    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);

没有其他编译器提示。此错误的原因可能是什么?谢谢。

最佳答案

问题是您将 direction 用于以下两个不同的事物:

.direction    = direction,

两者都被替换了。

尝试:

#define testFunction(intensity, dir) \
{ \
.force = intensity, \
.direction = dir, \
}

(这只是一个例子,可能还有比 dir 更好的名字。)

关于c - 字符串常量前的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com