通过变长数组(VLA)来看编译器的不同
2019独角兽企业重金招聘Python工程师标准>>>
代码一:
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]();
转载于:https://my.oschina.net/u/923087/blog/279167
通过变长数组(VLA)来看编译器的不同相关推荐
- C/C++之变长数组(VLA)和可伸缩型数组成员
数组主要用来处理一系列同类型的数据集合,在C/C++中应用十分广泛.其中有两种特殊的数组,变长数组(VLA)和可伸缩型数组成员,应用得当的话,会非常方便. ##变长数组(VLA) 在多维数组中,数组的 ...
- 第六章 C语言数组_C语言变长数组:使用变量指明数组的长度
在<C语言的三套标准:C89.C99和C11>一节中我们讲到,目前经常使用的C语言有三个版本,分别是 C89.C99 和 C11.C89(也称 ANSI C)是较早的版本,也是最经典的版本 ...
- C99中的变长数组(VLA)
处理二维数组的函数有一处可能不太容易理解,数组的行可以在函数调用的时候传递,但是数组的列却只能被预置在函数内部.例如下面这样的定义: #define COLS 4 int sum3d(int ar[] ...
- MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)
数组是一个数目固定,类型相同的数据项,数组中的数据项称为元素.数组中的元素都是int.long.或者其他类型. 声明一个数组时,要给编译器提供为数组分配内存所需要的所有信息,包括值的类型(决定每个元素 ...
- c99变长数组_你学过数组,那你知道柔性数组吗?
1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区struct max_buffer{ ...
- c++什么时候数组溢出_C语言,营养丰富的C语言五,变长数组不是动态数组
大家好,感谢朋友的支持阅读和关注,虽然我提出的这些小知识点看得人很少,但是每涨一个阅读和关注,都能让我开心很久,所以再次感谢一起学习的朋友们. 查余补漏: 在前几次的讲解中,有朋友提出C语言的内存分配 ...
- c语言变长数组参数,使用gdb跟踪C语言中变长数组的实现
项目的代码中出现的一个问题,问题的表现是,在一个函数中使用到了变长数组,而对超过这个数组 范围的一个赋值,导致了数组首地址为空. 我把这个问题抽出来形成了一个示例函数,在i386下也出现类似的问题,代 ...
- C语言高级教程-C语言数组(六):变长数组
C语言高级教程-C语言数组(六):变长数组 一.本文的编译环境 二.一维数组在执行期间确定长度 三.二维数组在执行期间确定长度 四.一维变长数组实例 五.完整程序 5.1 Main.h 文件程序 5. ...
- 变长数组-C99新特性
C99允许我们在任何地方定义变量,并且支持不定长数组的定义,即,我们可以使用变量来定义我们的数组.这就使得我们可以在程序运行过程中根据实际需要来定义数组长度. 变长数组被当做特殊的局部变量,相对于普通 ...
最新文章
- DAG情况下如何移动数据库路径
- Hive 0.13 数据类型
- linux mysql5.7启动失败/tmp/mysql.sock ?
- servlet和jsp学习总结
- EntityFramework实体默认值遇到Oracle自增主键
- POJ 3471 Integral Roots(素数、因数)
- 【转】ETL介绍与ETL工具比较
- 读书:梭罗的《瓦尔登湖》
- linux kali局域网远程桌面,kali使用rdesktop连接Windows远程桌面
- fiddler软件抓包工具超详细配置方法
- 大数据行业热门岗位有哪些
- C语言高级用法---container_of()
- UERANSIM的使用
- asn.1 rsa java_android - RSA公钥生成失败:“错误:0c0000be:ASN.1编码例程:OPENSSL_internal:WRONG_TAG” - 堆栈内存溢出...
- MLDonkey,比aMule好的BT软件
- 让你的LCD1602显示用户自定义字符 Arduino-LiquidCrystal库的createChart()介绍
- uniapp 使用在线 iconfont 图标
- 2008胡润中国富豪榜榜单前100名
- XIV(3)--Read/Write Operations
- android9.0官方下载,vivo正式带来Android 9.0公测版!
热门文章
- 图表添加特定横轴数据_Excel图表学习61: 编写一个给多个数据系列添加趋势线的加载宏...
- FPGA之道(46)数字电路中的隐患
- C_数据结构_链式二叉树
- 配置一台路由器,两台电脑的重点
- Python进阶02 文本文件读写
- 这是一篇“团队”博客
- 最新宣布:Intuit和微软公司就Intuit合作平台的最新版Windows Azure SDK扩大合作关系...
- 29、C++ Primer 4th 笔记,异常处理
- .NET中,字符串首字母大写的方法
- 浅议DAS、NAS、SAN三种存储架构