0

这是从我的模块中提取的:

在初始化后尝试为常量分配新值时,编译器(仅)发出警告消息。

这在 C99 中是不正确的,但我的模块似乎基于 C89,有人可以根据 C89 确认此语句的有效性。

4

2 回答 2

2

C89并且C99似乎都使用http://ideone.com/x8lXLerror中的代码为这种情况生成了一个看起来正确的案例;

# 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此处。

于 2010-12-31T16:14:38.050 回答
0

我刚刚检查了 C99 与 C89 的主要区别,没有提及“const”关键字的变化。

[题外话] 但是,我没有得到完整的 C89 标准草案。有谁知道在哪里可以下载?

于 2010-12-31T16:04:20.510 回答