| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:初学者遇到一个问题,请解答,做过了测试。
只看楼主 加入收藏
aa181637000
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-11-11
收藏
 问题点数:0 回复次数:7 
初学者遇到一个问题,请解答,做过了测试。
程序代码:
/* 以下是能成功编译且执行的代码 */
#include <stdio.h>

// 声明sum函数
int sum(int, int);

int main(){
    // 注释掉printf("hello world! \n");   程序编译且能执行
    // printf("hello world! \n");   
    int i = sum(2, 3);
    printf("a + b = %d  \n", i);
    return 0;
}

// 定义一个函数 计算2个整数的和
int sum(int a, int b){
    return a + b;
}
程序代码:
/* 

  以下代码编译报错。
  报错信息:
   error C2143: syntax error : missing ';' before 'type'
   error C2065: 'i' : undeclared identifier

 
*/

#include <stdio.h>

// 声明sum函数
int sum(int, int);

int main(){
    printf("hello world! \n");  // 当我把注释解开的时候,编译报错 
    int i = sum(2, 3);
    printf("a + b = %d  \n", i);
    return 0;
}

// 定义一个函数 计算2个整数的和
int sum(int a, int b){
    return a + b;
}
很疑惑,这是为什么呐?
我用的软件是vc++6.0,请知道的朋友能给出详细解答,不胜感激。


搜索更多相关主题的帖子: hello color world 
2013-11-11 23:33
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
是你编译器的问题吧,我用VS2010运行是没有错误的,你注释的那行应该是没有问题的。可能你一不小心解除注释时把分号删除了吧,我好久没用VC++6.0了,没测试,你自己再看看吧。
2013-11-11 23:52
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
应该是编译器问题吧.我编译都没有出错.
2013-11-12 09:02
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:0 
编译器认为,变量声明需在前,函数体在后,才能正确编译。调整下顺序编译通过。
int main()
{
    int i = sum(2, 3);
    printf("hello world! \n");  // 当我把注释解开的时候,编译报错
    printf("a + b = %d  \n", i);
    return 0;
}

埋头做牛,抬头做人,低头做狗
2013-11-12 09:14
zhangqidaxia
Rank: 2
等 级:论坛游民
帖 子:17
专家分:22
注 册:2013-10-16
收藏
得分:0 
我的也运行没错,是你编译器问题
2013-11-12 09:29
流年!
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:107
注 册:2013-11-7
收藏
得分:0 
你应该添加的是c源文件文件吧,c里面好像变量main要开始定义,c++可以任意地方定义变量
2013-11-12 09:37
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
估计是你的中英文编码的问题

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-11-12 10:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
因为你用的是古老的C语法
如果你用的是gcc编译器,加个参数-std=c99或-std=c11就行了
如果你用的是vc编译器,那没有办法了,vc只支持到C89/C90。
2013-11-12 10:31
快速回复:初学者遇到一个问题,请解答,做过了测试。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032386 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved