首页 新闻 会员 周边 捐助

c语言中为什么变量定义在scanf后面会报错?

0
悬赏园豆:5 [待解决问题]

用vc++6.0,在scanf后面定义变量老是提示错误,这和c语言的编译过程有关吗?求大神解释

浮云困fy的主页 浮云困fy | 初学一级 | 园豆:197
提问于:2013-09-04 21:41
< >
分享
所有回答(3)
0

问题说的不清楚,scanf后面怎么可以定义变量,scanf是一个输入函数,在缓冲区按格式获取数据并且赋值,你是不是忘了加在变量前 & 这个取址符号

大卫david | 园豆:240 (菜鸟二级) | 2013-09-04 22:19
0

C89规定, 在C语言中, 变量的声明必须位于任何可执行语句之前;不过在C99以及C++中, 你可以在任何地方声明变量;

出现这个问题的根本原因就在于VC6于1998年发行, 那时候还没有C99的这个标准, 编译器不支持C99;

但是, 直到现在, 微软的IDE还是没有完全兼容C99, 这就像浏览器都不完全遵循w3c中的标准一样, 因为这牵扯到一些商业原因。

解决方案:

1. 将文件的后缀名改为.cpp, VC6将会以C++的方式编译他(注意: 不推荐这种方式);

2. 抛弃VC6, 换成新版的GCC编译器, 可彻底解决;

3. 老老实实将变量全部声明在所有可执行语言的前面。

wid | 园豆:238 (菜鸟二级) | 2013-09-05 10:08
0

这是标准化的区别,是由于编译器引起的,导致个别语法不一致。推荐用C-Free IDE(项目结构简单的时候)。

幻天芒 | 园豆:37205 (高人七级) | 2013-09-05 13:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册