通过变长数组(VLA)来看编译器的不同
来源:互联网 发布:手机尺子测量软件 编辑:程序博客网 时间:2024/04/28 10:06
代码一:
const int x=5;int num[x];代码二:
int x=5;int num[x];
代码一能够在g++, vc6.0, vs2010上编译通过。
代码二能够在g++上通过,而在vc6.0,vs2010上通不过。
现在明白怎么回事了。g++是支持变长数组的(VLA),变长数组是c++ C99标准的新特性。C99是GNU主导的标准,M$完全无视,意图压制C99的普及度,所以vc6.0,vs2010,vs2012,包括vs2014(如果有的话),以后的vs都不会支持这个特性。这里鄙视M$一下!
正因为如此,许多跨平台软件都不敢上C99特性,否则在Windows平台只能用gcc编译,这会导致体积和性能都受到影响 。
如果要考虑通用性的话,还是用动态数组吧!
动态数组:
int *num=new int[x]();
- 通过变长数组(VLA)来看编译器的不同
- 变长数组vla(realloc的扩容)
- C 中的变长数组 VLA
- 变长数组(VLA),二维数组函数传递
- 数组的数组(变长数组)
- 通过自定义的 Array 类来实现变长数组
- 变长数组的应用
- 变长数组(动态数组)
- C 99 变长数组(不完整数组)的支持
- (变长数组)变量也可做特殊数组的长度
- 变长数组的灵活运用
- 变长数组的灵活运用
- 变长数组解析(转)
- 数组与指针的艺术 第九章 C99可变长数组VLA详解
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- setmetatable的一点总结
- centos5.5下cacti安装部署步骤
- Yii 视图中显示外键
- YPbPr 和 YCbCr的区别
- 关于$emit和$broadcast的理解与测试
- 通过变长数组(VLA)来看编译器的不同
- 什么是Oracle技术网开发者许可 (OTN License)
- java实现从M个元素中取N个元素的所有组合(数学中的组合问题)
- VC中怎样点击按钮弹出一个对话框
- localtime 和 localtime_r
- mac下简单绘图工具
- 范式约束下矩阵的一个求偏导的例子
- WinCE BSP工程文件pbcxml分析
- ActionBarSherlock使用教程