我以为C不再让我感到惊讶,但这令我感到惊讶。
const int NUM_FOO = 5;
....
int foo[NUM_FOO];
==>error C2057: expected constant expression
我的C ++经验使我在内部#define
尽可能不赞成使用。因此,这真是一个惊喜。VS2019,使用/ TC编译。我认为C99仍然允许可变大小的数组。
谁能解释为什么会出现拒绝,因为编译器在编译时肯定知道数组的大小?
C99是否允许可变大小的数组?
const
在C中没有声明编译时常量。enum
如果要避免使用常量,而#define
想要一个可以在调试器中显示的符号名称,则可以改用常量。
C99不支持沃拉斯。但是,VS2019不支持C99。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句