编译C代码时出现ISO C++错误
ISO C++ errors when compiling C code
我正在尝试编译一个.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’
所以我的问题有两个:第一,为什么我不能初始化头中结构的值?第二,为什么我在编译C代码时会出现ISO C++错误?
.C
(大写字母'C')时,gcc
自动进入C++模式。确保C源文件的扩展名为.c
(小写字母"C")。
相关文章:
- 如何使用 C++将 ISO-2022-KR 编码转换为 UTF-8 编码?
- ISO C++禁止声明没有类型的"setInputNombre"
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- 为什么我会收到此警告:ISO c++ 禁止可变长度数组"v"[-Wvla]
- ISO 中禁止可变长度数组 C++崇高文本中的错误 3.
- 是否存在经过认证(ISO 26262或类似)C++标准库?
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 错误:ISO C++禁止可变长度数组"subVec"[-Werror=vla]
- Clang-CL 警告 strnicmp 已弃用,请使用 ISO C 并C++符合标准的名称_strnicmp
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- 警告:ISO C++禁止可变长度数组
- 包括C++标题,"..."与<...>风格,ISO / IEC官方意见?
- 在 c++ 中将 ISO 日期时间转换为本地日期时间并提取时间
- 在 Boost 中解析 RFC3339/ISO 8601 时间戳
- :<command-line>0:3:警告:ISO C++11 要求宏名称后有空格
- C++错误:ISO C++禁止声明.没有类型
- 警告:ISO C++禁止将字符串常量转换为'char*' [-Wwrite-strings]
- 将 OR 放入 if 语句会导致 ISO C++禁止指针和整数之间的比较(f 允许)