| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3603 人关注过本帖
标题:编译器显示无法解析外部符号的问题
取消只看楼主 加入收藏
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:3 
编译器显示无法解析外部符号的问题
这是要统计C语言关键字出现的次数,求大佬在不改变程序结构的前提下帮忙解释一下这个问题,

错误显示:有两个无法解析的外部符号

我无法找到错误出现在哪里,蛮尴尬的,请大佬解释一下错在哪里哈
源代码如下:
#include<stdio.h>
#include<ctype.h>
#include<string.h>

#define MAXWORD 100
#define NKEYS 11

//关键字结构体定义
struct key{
    char *word;
    int count;
}keytab[NKEYS]={
    "auto",0,
    "break",0,"case",0,
    "char",0,"const",0,
    "continue",0,"default",0,
    /*...*/
    "unsinged",0,"void",0,
    "volatile",0,"while",0
};


//输入函数
int getword(char *,int);

//折半查找函数
int binsearch(char *,struct key *,int);

//统计输入中C语言关键字出现次数
int main(){
    int n;
    char word[MAXWORD];

    while(getword(word,MAXWORD) !=EOF){
        if(isalpha(word[0]))
            if((n=binsearch(word,keytab,NKEYS))>=0)
                keytab[n].count++;
    }
    for(n=0;n<NKEYS;n++){
        if(keytab[n].count>0)
            printf("%4d %s \n",keytab[n].count,keytab[n].word);
    }
    return 0;
}


//binsearch函数,在tab[0]到tab[n-1]之间查找单词
int binsearch(char *word,struct key tab[],int n){
    int cond;
    int low,high,mid;

    low=0;
    high=n-1;
    while(low<=high){
        mid=(low+high)/2;
        if((cond=strcmp(word,tab[mid].word))<0)
            high=mid-1;
        else if(cond>0)
            low=mid+1;
        else
            return mid;
    }
    return -1;
}

//输入函数
int getword(char *word,int lim){
    int c,getch(void);
    void ungetch(int);
    char *w=word;
    while(isspace(c=getch()))
        ;
    if(c!=EOF)
        *w++=c;
    if(!isalpha(c)){
        *w='\0';
        return c;
    }
    for(;--lim>0;w++){
        if(!isalnum(*w=getch())){
            ungetch(*w);
            break;
        }
        *w='\0';
        return word[0];
    }
}
搜索更多相关主题的帖子: word char int return mid 
2019-03-13 21:04
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
收藏
得分:0 
回复 4楼 rjsp

这个是运行后编译器给出的错误提示,表示不知道怎么改正。。。。。


1>------ 已启动生成: 项目: 结构体, 配置: Debug Win32 ------
1>生成启动时间为 2019/3/14 9:28:29。
1>InitializeBuildStatus:
1>  正在对“Debug\结构体.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  所有输出均为最新。
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>结构体.obj : error LNK2019: 无法解析的外部符号 "void __cdecl ungetch(int)" (?ungetch@@YAXH@Z),该符号在函数 "int __cdecl getword(char *,int)" (?getword@@YAHPADH@Z) 中被引用
1>结构体.obj : error LNK2019: 无法解析的外部符号 "int __cdecl getch(void)" (?getch@@YAHXZ),该符号在函数 "int __cdecl getword(char *,int)" (?getword@@YAHPADH@Z) 中被引用
1>E:\VC program fies\C语言\瞎搞\结构体\Debug\结构体.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:03.68
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2019-03-14 09:30
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
收藏
得分:0 
这是编译器运行后给出的错误提示,不知道怎么改正,求大佬帮帮忙!


1>------ 已启动生成: 项目: 结构体, 配置: Debug Win32 ------
1>生成启动时间为 2019/3/14 9:28:29。
1>InitializeBuildStatus:
1>  正在对“Debug\结构体.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  所有输出均为最新。
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>结构体.obj : error LNK2019: 无法解析的外部符号 "void __cdecl ungetch(int)" (?ungetch@@YAXH@Z),该符号在函数 "int __cdecl getword(char *,int)" (?getword@@YAHPADH@Z) 中被引用
1>结构体.obj : error LNK2019: 无法解析的外部符号 "int __cdecl getch(void)" (?getch@@YAHXZ),该符号在函数 "int __cdecl getword(char *,int)" (?getword@@YAHPADH@Z) 中被引用
1>E:\VC program fies\C语言\瞎搞\结构体\Debug\结构体.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:03.68
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2019-03-14 09:30
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
收藏
得分:0 
回复 8楼 forever74
我敲了f1后出现错误,好像是没下载相关内容。。。。。
2019-03-14 16:46
快速回复:编译器显示无法解析外部符号的问题
数据加载中...
 
   



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

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