c语言 编译器对比,C编译器差异(VS2008和g)

博客探讨了一段C++代码在Linux和Visual Studio 2008中编译的问题。代码包含了一个动态大小的字符数组声明,这在g++中有效但不被Visual Studio接受,导致编译错误。文章讨论了两种编译器对相同语言的不同解释和标准兼容性问题。
摘要由CSDN通过智能技术生成

我尝试在

Linux和VS 2008中编译以下代码:

#include // this line has a ".h" string attached to the iostream string in the linux version of the code

using namespace std; // this line is commented in the linux version of the code

void main()

{

int a=100;

char arr[a];

arr[0]='a';

cout<

}

此行适用于g版本,但在Visual Studio中不起作用.

它会引发以下错误:

1>c:\users\bibin\documents\visual studio 2008\projects\add\add\hello.cpp(7) : error C2057: expected constant expression

1>c:\users\bibin\documents\visual studio 2008\projects\add\add\hello.cpp(7) : error C2466: cannot allocate an array of constant size 0

1>c:\users\bibin\documents\visual studio 2008\projects\add\add\hello.cpp(7) : error C2133: 'arr' : unknown size

这是一个有效的陈述吗?两个编译器如何对同一语言有不同的解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值