博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过变长数组(VLA)来看编译器的不同
阅读量:6937 次
发布时间:2019-06-27

本文共 419 字,大约阅读时间需要 1 分钟。

hot3.png

代码一:

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

你可能感兴趣的文章
我的友情链接
查看>>
【原创】MySQL 实现Oracle或者PostgreSQL的row_number over 这样的排名语法
查看>>
Golang面试题解析(五)
查看>>
shell 输出100个+方法总结
查看>>
我的友情链接
查看>>
在启动kubernets的时候报错
查看>>
hive通过其它用户连接后执行语句提示没有hdfs系统目录权限
查看>>
ubuntu 配置网卡,DNS, iptables
查看>>
RT-Thread--内核基础
查看>>
BZOJ1434:[ZJOI2009]染色游戏(博弈论)
查看>>
[Python] Hermite 插值
查看>>
带头节点的单链表的插入操作优化
查看>>
winSockets编程(七)WSAAsyncSelect模式
查看>>
Huffman Codes
查看>>
求一棵二叉树的镜像
查看>>
Principal Component Analysis(PCA) algorithm summary
查看>>
【安装Ubuntu 遇到问题】 the system is running in low-graphics mode 最新办法解决
查看>>
达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
Ant调用Java中文显示乱码
查看>>