gpt4 book ai didi

c++ - 编译 C 代码时出现 ISO C++ 错误

转载 作者:行者123 更新时间:2023-11-30 21:21:22 25 4
gpt4 key购买 nike

我正在尝试编译一个 .C 文件,其中包含一个相应的 .h 文件,如下所示

typedef struct myType
{
char* myString = "NOT SET";
int myInt = -1;
}

运行“gcc -c myFile.c”会引发以下错误:

Error: ISO C++ forbids initialization of member 'myString'
Error: making 'myString' static
Error: invalid in-class initialization of static data member of non-integral type ‘char*’
Error: ISO C++ forbids initialization of member 'myInt'
Error: making 'myInt' static
Error: invalid in-class initialization of static data member of non-integral type ‘int’

所以我的问题有两个:首先,为什么我不能初始化 header 中结构的值?其次,为什么在编译 C 代码时会出现 ISO C++ 错误?

最佳答案

当文件扩展名为 .C(大写字母“C”)时,

gcc 自动进入 C++ 模式。确保您的 C 源文件具有扩展名 .c(小写字母“c”)。

关于c++ - 编译 C 代码时出现 ISO C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259611/

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