| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1186 人关注过本帖
标题:照着课本上输入的简单程序出错误
只看楼主 加入收藏
龙马516
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-22
收藏
 问题点数:0 回复次数:8 
照着课本上输入的简单程序出错误
程序是
#include<stdio.h>
int max(int x,int y)
{
    int z;
    if(x>y)z=x;
    else z=y;
    return(z);
}
现实报错是
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/zx45.exe : fatal error LNK1120: 1 unresolved externals
搜索更多相关主题的帖子: return 课本 
2016-10-22 22:56
龙马516
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-22
收藏
得分:0 
#include<stdio.h>
int main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("max=%d\n",c);
    return 0;
}
显示的是
zx5.obj : error LNK2001: unresolved external symbol _max
Debug/zx45.exe : fatal error LNK1120: 1 unresolved externals
2016-10-22 22:57
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
....第一个程序: error LNK2001: unresolved external symbol _main   估计是因为没有main这个主函数,所以失败了

第二个程序   unresolved external symbol _max   没有找到max函数的实体,只有声明,没有实体。

解决方案,两段代码组合起来
程序代码:
#include<stdio.h> 

int main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("max=%d\n",c);
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)z=x;
    else z=y;
    return(z);
}




φ(゜▽゜*)♪
2016-10-22 23:02
龙马516
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-22
收藏
得分:0 
回复 3楼 书生牛犊
这两个都是单独的。。。
2016-10-22 23:04
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
....所以错了啊。。。
这两个东西是相互依存的,缺一不可。

φ(゜▽゜*)♪
2016-10-22 23:08
龙马516
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-22
收藏
得分:0 
回复 5楼 书生牛犊
知道了,谢谢了!!!
2016-10-22 23:11
龙马516
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-22
收藏
得分:0 
回复 5楼 书生牛犊
也就是说第一段里面的max函数未进行定义,第二段对max进行定义了,这样才能运行
2016-10-22 23:15
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 7楼 龙马516
对于下面这样的代码来说,你讲的话是正确的。
#include<stdio.h>
int main()
{
    int max(int x,int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("max=%d\n",c);
    return 0;
}
显示的是
zx5.obj : error LNK2001: unresolved external symbol _max
Debug/zx45.exe : fatal error LNK1120: 1 unresolved externals
对于你写的第一段代码来说。那个文件了明显只有max函数,却没有main函数。
举个不恰当的例子吧,main函数就像一个插座(有电),你可以写max,min,或者更多其他的函数(这些函数就好比冰箱电视洗衣机,各种不一样的电器),main是最关键的。对于新手而言,你写的所有程序计算机都是从main函数开始执行,去调用别的函数、变量等等等等。
而你在一楼二楼发的两段代码所表现出来的错误就是前者有电器没插座,后者有插座没电器(虽然你声明的int max(int,int);但是这只是声明,还没有实体,就好像你在插座旁贴了便利签说此插座用于空调,然而你并没有真的持有这台空调)。。当然他就报错没找到max函数实体咯


φ(゜▽゜*)♪
2016-10-22 23:29
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:0 
单独的话,可以考虑把max函数写在一个xxx.h里面,然后放到和main函数所在.c或者.cpp文件的同一目录下。然后再main函数这个xxx.c或xxx.cpp里,在开始加上这一句:#include "xxx.h"
2016-11-01 17:43
快速回复:照着课本上输入的简单程序出错误
数据加载中...
 
   



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

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