GCC编译通过但是VC6.0编译通不过

qlmi 2009-12-06 08:00:24
#include <stdio.h>

int main(void)
{
char a = '\x0D';
char sChar[15] = "Test Str""ing!!\0";
puts("I LOVE THIS GAME!\n");
printf( "XXX%c\n", a );
printf( "%s\n", sChar );
int i = 10;
printf("The test: %d\n", i );
return 0;
}

这是怎么回事呢?
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
do_fork 2009-12-06
  • 打赏
  • 举报
回复
gcc可以通过-std=标准版本 参数指定以什么标准去编译, 选择挺多的

c89/iso9899:1990

iso9899:199409

c99/c9x/iso9899:1999/iso9899:199x/ISO C99.

gnu89

gnu99/gnu9x

c++98

gnu++98

c++0x

gnu++0x
  • 打赏
  • 举报
回复
C89规定 变量必须在定义作用域的开头。
C99规定随便可以定义
但VC只支持C89,不支持C99
jackyjkchen 2009-12-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qlmi 的回复:]
那怎么GCC编译就能通过呢?
而且我查了MSDN上面关于这方面的问题,好像说的也是声明必须放在块的最开头。
[/Quote]
gcc是C99标准,C99标准吸收了许多C++的东西
qlmi 2009-12-06
  • 打赏
  • 举报
回复
那怎么GCC编译就能通过呢?
而且我查了MSDN上面关于这方面的问题,好像说的也是声明必须放在块的最开头。
jackyjkchen 2009-12-06
  • 打赏
  • 举报
回复
可以改成c++扩展名,就能通过了。
jackyjkchen 2009-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 do_fork 的回复:]
VC只支持C89标准,你要用最老式的C语法
[/Quote]
K&R语法,最老式,标准化之前的C,无法编译……

int fuc(a,b)
int a,
int b
highball 2009-12-06
  • 打赏
  • 举报
回复
int i = 10;
函数内变量要放在函数体的最前面。这是老的标准。
kouwenlong 2009-12-06
  • 打赏
  • 举报
回复
VC对标准库的支持不是很好,建议扔掉。
do_fork 2009-12-06
  • 打赏
  • 举报
回复
VC只支持C89标准,你要用最老式的C语法

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧