编译器错误"variable modified 'artikel' at file scope"



>我有一个程序出现错误:

variable modified 'artikel' at file scope
char artikel[ARTNAME];

我想我必须添加一个#define,但究竟应该是哪一个?

这是我的代码:

#include <stdio.h>
#include <string.h>
const int ARTNAME = 100;
typedef struct artikel {
char artikel[ARTNAME];
int anzahl;
} artikel;
int main()
{
}

我有一个程序,我得到错误:变量修改的'artikel'at file scope char artikel[ARTNAME];

我认为您没有准确复制诊断。 它肯定在抱怨struct artikel修改得各不相同

这与 C 语言中文件范围内的可变修改数组中涵盖的问题密切相关。 具体来说,尽管有const限定,ARTNAME不是 C 语言中的"常量表达式",因此数组的类型artikel.artikel,因此整个struct artikel的类型都是"可变修改的"。 不能在文件范围内声明具有可变修改类型的对象。

我想我必须添加一个 #define,但我不明白到底是哪一个。

最快的解决方案可能是改变这一点...

const int ARTNAME = 100;

......自:

#define ARTNAME 100

最新更新