返回信息流c++ primer中说道:“非const变量以及要到运行时才知道其值的const变量都不能用于定义数组的维数”,并给出如下一个错误的例子,但我用g++却编译通过了,有同学知道是怎么回事吗?
int staff_size = 27; // nonconst
double salaries[staff_size]; // error: non const variable
这是一条镜像帖。来源:北邮人论坛 / cpp / #77409同步于 2014/3/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
非const变量可以定义数组的维数?
jessica1
2014/3/13镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 hpp 的大作中提到: 】
: 因为现在的编译器很聪明。。。。
c++primer还说过,编译器的某些自作聪明可能某些错误,这种错误比语法错误更难发现,而且后果更严重,所以应该让编译器只做我们想它做的事情,不要让它去猜,它不靠谱。[ema37]
【 在 binxin 的大作中提到: 】
: c++primer还说过,编译器的某些自作聪明可能某些错误,这种错误比语法错误更难发现,而且后果更严重,所以应该让编译器只做我们想它做的事情,不要让它去猜,它不靠谱。
引用一下vczh的话“编译器是有bug的,你们不要调戏它”。
写代码本来就不应该写那种跟非确定行为擦边的代码。
c99,我记得c99开始就是支持这样写的,动态数组
http://baike.baidu.com/link?url=4oLeM0PKavObfklORRXBZnL9o0Lea07C53k-a3dnPxlRNWVg5ypC7IC97e6miMjwwwNaA9GvALE9nyAe56m7ra
谢谢,学习了。
【 在 ycw123 的大作中提到: 】
: c99,我记得c99开始就是支持这样写的,动态数组
: http://baike.baidu.com/link?url=4oLeM0PKavObfklORRXBZnL9o0Lea07C53k-a3dnPxlRNWVg5ypC7IC97e6miMjwwwNaA9GvALE9nyAe56m7ra