这是从我的模块中提取的:
在初始化后尝试为常量分配新值时,编译器会(仅)发出警告消息。
这在C99中是不正确的,但我的模块似乎是基于C89,有人可以根据C89确认此声明的有效性。
答案 0 :(得分:2)
C89
和C99
似乎都为此案例生成error
,看起来是正确的,使用http://ideone.com/x8lXL中的代码;
# C89
[~]> gcc -std=c89 test.c
test.c: In function ‘main’:
test.c:5: error: assignment of read-only variable ‘A’
# C99
[~]> gcc -std=c99 test.c
test.c: In function ‘main’:
test.c:5: error: assignment of read-only variable ‘A’
另请注意,clang
同意此处gcc
。
答案 1 :(得分:0)
我刚刚检查了C99与C89的主要区别,并且没有提及'const'关键字的变化。
[偏离主题]但是,我没有得到整个C89标准草案。有谁知道我可以从哪里下载它?