诗岑 2020-02-04 19:22 采纳率: 93%
浏览 604
已采纳

关于“无法解析的外部符号”与“无法解析的外部命令”

在采用外部函数和extern变量时发生的问题

#include <stdio.h>/*包含头文件*/
extern int add();
extern result();
main() {
    char option1,option2,option3,option4;

    printf("1.你会选择哪种仪式来告别一段旧恋情?\n");
    printf("A.开始一段旅行,迎接新的邂逅\n");
    printf("B.清理旧物,清空回忆\n");
    option1 = getchar();
    getchar();
    printf("2.突然有帅哥/美女来搭讪,你的反应?\n");
    printf("A.惊喜\n");
    printf("B.惊吓\n");
    option2 = getchar();
    getchar();
    printf("3.关于婚姻与爱情的态度?\n");
    printf("A.相爱了,结婚不就是个本么?\n");
    printf("B不行!结婚是终身大事,必须慎重\n");
    option3 = getchar();
    getchar();
    printf("4.你愿意做海王吗?\n");
    printf("A.坦然接受,渣一点也无妨\n");
    printf("B.果断拒绝,爱的太多是灾难\n");
    option4 = getchar();
    getchar();


}
#include<stdio.h>
extern char option1, option2, option3, option4;
int add() {
    int score = 0;

    if (option1 == 'a' || option1== 'A')score = score + 1;
    if (option2 == 'a' || option2 == 'A')score = score + 1;
    if (option3 == 'a' || option3 == 'A')score = score + 1;
    if (option4== 'a' || option4 == 'A')score = score + 1;
    return score;
}

此段代码报错:无法解析的外部符号option1, option2, option3, option4

#include<stdio.h>
extern int score;

result() {

    if (score == 4)printf("你对待感情的态度可谓是妥妥的浪啊。因为你的不羁放纵爱自由,你在青年时期烂桃花不断;而随着年岁渐长,人老珠黄的你,也只能哀叹风光不再了!\n");
    if (score == 3)printf("你放浪形骸,但不排斥过平静的生活,因此,在经过渣男/渣女的洗礼后,你也找到了自己的真爱,最终桃花结果!\n");
    if (score == 2)printf("你在爱情方面比较中立,既能保持一个人的潇洒,也能享受两个人的甜蜜。你的桃花属于正常,将来很可能遇见对的人,然后相伴一生\n");
    if (score == 1)printf("你有些谨慎保守哦!如果把你的同龄人比作可乐,那你就是一壶苦茶,属于徒手撕桃花的存在,不过别担心,迟来的春天总是会来的,中年成熟的魅力会让你离桃花更近一步哦!\n");
    if (score == 0)printf("你...您贵庚哪?看来你已经不适合浪漫的邂逅了,不仅青年没桃花,就连中年看见小情侣秀恩爱你都会觉得肉麻,仿佛对桃花过敏!看来,你还是适合相顾相知,细水长流的黄昏恋啊\n");
}

此段代码报错:无法解析的外部符号score
此外整个project有5个无法解析的外部命令
还有一个叫做Microsoft.CppBuild.targets的文件发出警告:The intermediate directory (Debug) contains files shared from another project (Project1.vcxproj). This can lead to incorrect clean and rebuild behavior.

求指教

  • 写回答

2条回答 默认 最新

  • Kim_小星兴 2020-02-04 19:58
    关注

    char option1,option2,option3,option4;

    int score = 0;

    定义到函数外面即可

    char option1,option2,option3,option4;    
    int score = 0;  
    void main(void)
    {
    // do something
    }
    

    是把函数里面的定义移到外面即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计