注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

一个小问题的解决  

2014-09-04 13:17:54|  分类: C语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include <stdio.h>
int main()
{
  int chen(int n);
  int x;
  scanf("%d",&x);
  int c;
  c=chen(x);
  printf("%d",c);
}
//求阶乘
int chen(int n)
{
int result=1,i;
for(i=1;i<=n;i++)
{
result=result*i; 
}
return(result);
}
程序运行报错如下:
一个小问题的解决 - brain - 百年孤独
 
最终原因总结:

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

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

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

解决方案:

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

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

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

  评论这张
 
阅读(16)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017