c语言LNK2002错误,C语言错误LNK112(一个无法解析的外部命令)

(最近的课设需要设计一个餐厅点菜的系统

在点菜的头文件和结算的头文件中我定义了一个全局变量extern int sum,并将其放在一个global的头文件里。

我打算是让这个变量可以储存点菜中的金额,并让其在结算中调用出来。)

麻烦大佬们帮我看下这个错误是怎么导致的

/*"global.h"的代码如下*/

extern int sum;

/*“点菜.h”如下*/

#include

#include

#include"time.h"

#include"windows.h"

#include"string.h"

extern int sum;

void order()

{

int i, sel;

system("cls");

printf("ttt******************************************************n");

printf("ttt******************************************************n");

printf("ttt***************欢迎来到城科餐厅点餐功能***************n");

printf("ttt******************************************************n");

printf("ttt******************************************************n");

printf("nnn");

printf("ttt******************************************************n");

printf("ttt***************1 按菜名点餐 ****************n");

printf("ttt***************2 退出点餐 ****************n");

printf("ttt******************************************************n");

printf("ttt请你输入你的选择(1-2):");

scanf_s("%d", &sel);

while (sel < 1 || sel>2)

{

printf("ttt 输入错误,请你重新输入你的选择(1-2):");

scanf_s("%d", &sel);

}

switch (sel)

{

case 1:

{

char order_cm[30];

int flag, x;

printf("ttt请你输入你所要点餐的菜名:");

scanf_s("%s", &order_cm);

//把输入的菜名和所有菜品的菜名进行比对,是否相等,如果相等则输出

flag = 0; //0表没有找到

for (i = 0; i <= 39; i++)

{

if (order_cm == soft[i].cm)

{

flag = 1;//1表示找到了

sum += soft[i].price;

for (x = 1; x <= 103; x++)

printf("-");

printf("n");

printf("|");

printf("%-9s", "菜名");

printf("|");

printf("%-9s", "菜品类型");

printf("|");

printf("%-9s", "价格");

printf("|");

printf("n");

for (x = 1; x <= 103; x++)

printf("-");

printf("n");

printf("|");

printf("%-9d", soft[i].cm);

printf("|");

printf("%-9d", soft[i].lx);

printf("|");

printf("%-9d", soft[i].price);

printf("|");

printf("n");

for (x = 1; x <= 103; x++)

printf("-");

printf("n");

break;

}

}

if (flag == 0)

printf("ttt查无此菜品!!!n");

system("pause");

order();//点餐以后继续点餐

}

break;

case 2:

break;

}

}

/*"结算.h"如下

#include

#include

#include"time.h"

#include"windows.h"

#include"string.h"

extern int sum;

void billpay()

{

system("cls");

printf("ttt******************************************************n");

printf("ttt******************************************************n");

printf("ttt***************欢迎来到城科餐厅结算功能***************n");

printf("ttt******************************************************n");

printf("ttt******************************************************n");

printf("nnn");

printf("ttt******************************************************n");

printf("ttt********您需支付%d元**********n",&sum);

system("pause");

}

回答

你extern 变量使用有问题,只有声明,没有定义

而且sum += soft[i].price;前没初始化变量过

gobal.h那里改成extern int a =0 ;试试

再不行的话把gobal.h改成gobal.c试试

帮到你的话采纳一下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值