woka

VC中的变态错误

在VC中(无论VC6.0还是VS2005),如果建立的是一个C文件(后缀为.c而不是.cpp),如以下一段程序:


#include <iostream>
using namespace std;
void pp(int a){
 cout << a << endl;
}

void p(int a){
 pp(a);
 int b = 0;//应该放在最前面
 pp(b);
}

int main(){
 int a = 0;
 p(a);
 return 0;
}


保存为 test.c
error C2143: 语法错误 : 缺少“{”(在“:”的前面)
error C2059: 语法错误 : “:”
总共一百多个错误
原来在VC中编译c程序,在一个大括号括起的范围内,如果变量声明放在了函数调用的后面,那么编译就会出错。而在其他一些标准C/C++编译器中是不会出现这个错误的。

posted on 2009-06-14 00:45 woka 阅读(433) 评论(2)  编辑 收藏 引用

评论

# re: VC中的变态错误 2009-06-14 17:02 陈梓瀚(vczh)

C语言本来就不能随地定义变量,那是你的错……C++才可以的  回复  更多评论   

# re: VC中的变态错误 2009-06-14 18:08 woka

但是将下面这段代码用dev-c++编译是正确的,而在VS2005中会出现
1.语法错误 : 缺少“;”(在“类型”的前面)
1.“b”: 未声明的标识符
///////////////////////////////////////////////////////////////////
#include <stdio.h>

void pp(int a){
printf("%d",a);
}

void p(int a){
pp(a);
int b = 0;//应该放在最前面
pp(b);
}

int main(){
int a = 0;
p(a);
return 0;
}
@陈梓瀚(vczh)
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜