编译错误syntax error : missing ';' before 'type'

在vc中运行以下程序:


//test.c


#include<stdio.h>


void main(void)

{

   int i;

   printf("Hello World/n");

   int j;

}

 

将这个文件保存成了test.c

然后编译的时候会报一个错误:

syntax error : missing ';' before 'type'

仔细看起来所有的语法都似乎是对的,这个问题有点奇怪,如果把文件改成.cpp或者.cc则能正常编译,把int j;”放在“printf("Hello World/n")”上也能正常编译。


google了下得到了答案和总结如下:


在VC中编译c程序,在一个大括号括起的范围内,如果变量声明放在了函数调用的后面,那么编译的时候就会报错:
syntax error : missing ';' before 'type'

然后你可以修改为把变量声明放在函数调用之前,就会顺利通过编译。


总结:

在VC中编译程序,如果是ANSI C或者C++,在可执行代码中随时定义变量是允许的,但是在C是不允许的。

这样的错误也体现在VS中,如果使用for (int i = 0; i++; i<10),且你的文件名是.c,编译时也会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值