Newtopython
诗岑
采纳率79.6%
2020-02-04 19:22

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

已采纳

在采用外部函数和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.

求指教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_39575645 Kim_小星兴 1年前

    char option1,option2,option3,option4;

    int score = 0;

    定义到函数外面即可

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

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

    点赞 评论 复制链接分享

相关推荐