不同编译器(Code::Blocks 和 VC)对语法的支持

jeff_nie jeff_nie 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1. 《C和指针》上说,对数组初始化时,如果初始化值的个数大于数组元素是非法的,但在Code::Blocks 10.05上确未提示任何错误或警告信息,但在VC 6.0和VS 2008下都报相同的错误:初始化值太多。
int c[3] = {1, 2, 3 ,4}; // 是否非法


2. 定义一个指向数组的指针时,以下语句Code::Blocks 10.05下同样编译正常,而在VC 6.0和VS 2008下也报同样的错误:int matrix[][]无法转换为int *
int matrix[3][10];
int *mp = matrix; // 是否非法

对于上面两个语法,标准是否有明确定义呢?还是这个语法确实会在不同编译器下产生不一样的结果。谢谢!
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
jeff_nie
C语言 70,039 成员 243,237 内容