您的位置:首页 > 其它

编译错误syntax error : missing ';' before 'type'原因探寻

2014-10-13 23:50 405 查看
-----------android培训java培训、java学习型技术博客、期待与您交流!------------

在老师I讲课的视频上有一段小程序,是分析变量作用范围的。

我分析完毕,然后再win系统上运行VC++ 调试的时候,提示该程序不对。。。

明明就是老师给出来的程序,难道是同样的C程序,在WIn和MAC上运行有差别吗?

#include <stdio.h>

int main()
{
int a = 20;
int score = a + 100;
printf("%d\n", score);

{
int score = 50;
{
score = 10;
printf("%d\n", score);
}
a = 10;
}

{
score = a + 250;
int score = 30;
printf("%d", score);
}

printf("%d\n", score);
return 0;
}


VC++提示syntax error : missing ';' before 'type',

后来我仔细分析,如果把程序中间一个程序块改为

{
int score = 30;
score = a + 250;
printf("%d", score);
}


程序就会顺利通过编译。

经过测试发现,在VC中,在一个程序块内,如果变量声明放在了函数调用或者赋值语句的后面,那么编译的时候就会报错:missing ; before type

然后如果修改将变量声明放在函数调用或者赋值语句之前,就会顺利通过编译。

这个问题在gcc编译C程序的时候都不会出现,只有在VC编译C的时候才会出现。

原来纠结半天的问题出在这里了。

终于搞明白了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐