>我有一个程序出现错误:
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