gpt4 book ai didi

c - 错误 [Pe028] : expression must have a constant value

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

我在编译代码时遇到以下错误:

Error[Pe028]: expression must have a constant value

我已经在 stackoverflow 中阅读了有关该问题的其他一些文章,但我无法解决该行为。

我有一个包含两个 typedef 的头文件:

typedef struct{
int32_t a;
int32_t b;
int32_t c;
}mydefone;

#ifndef _my_def_one
#define _my_def_one
extern mydefone MyDefOne;
#endif

typedef struct{
int32_t header;
mydefone definition;
}mydeftwo;

#ifndef _my_def_two
#define _my_def_two
extern mydeftwo MyDefTwo;
#endif

现在我正尝试在我的 .c 文件中使用这两个外部定义,并像这样将它们相互链接:

mydefone MyDefOne = {1,2,3};
mydeftwo MyDefTwo = {567,MyDefOne};

我的编译器为我的 MyDefTwo 抛出上述错误。

我知道通常我现在不需要此示例中的 Header 解决方案,但稍后我需要通过实现该 Header 在另一个 c 文件中使用这些变量(相同副本)。

提前致谢!本

最佳答案

MyDefOne 不是有效的初始值设定项。接下来你应该使用:

mydefone MyDefOne = {1,2,3};
mydeftwo MyDefTwo = {567,{1,2,3}};

或者利用宏来保证两次初始化使用相同的值:

#define MY_INITIALIZER {1,2,3}

mydefone MyDefOne = MY_INITIALIZER;
mydeftwo MyDefTwo = {567, MY_INITIALIZER};

关于c - 错误 [Pe028] : expression must have a constant value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075865/

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