关于c语言不同文件之间直接函数接口引用的简介

在工作中,很多情况下是当前正编辑的A程序的函数接口中需要调用到B文件内部定义的函数接口,
通常情况下我们有如下两种处理方式:
1. 将B文件中A用到的B文件的函数接口放置在B.h文件中,A函数所在文件引用到B.h文件即可;
2. 就是直接在A所在的文件中用:extern func();声明引用。
一般情况下,为了程序的刻度性选用第一种处理方式,但是也不是所有的情况第一种都适用,
比如:在A函数接口中引用到的B文件的函数接口用到了非B或者B.h文件定义的结构体等情况,
这时,若在B.h中声明引用到的函数接口,就会提示你用到了未定义或未知类型的数据结构,
然而当你将包含这个数据类型的结构时,又可能会出现其他的一些错误,比如未知的类型声明或使用,
具体的例子讲解如下


方案 1:
curr.c
struct student{
int id;
int num;
int score;
char name[20];
}STU;
func A()
{
STU stu;
int m, n;
struct 
b(m,n);
c(stu);

return 0;
}


B.c 


b(int m, int n)
{
...
}


c(STU stu)
{
...
}


B.h


extern b(int m, int n);
extern c(STU stu);


方案2:
curr.c
struct student{
int id;
int num;
int score;
char name[20];
}STU;


extern b(int m, int n);
extern c(STU stu);


func A()
{
STU stu;
int m, n;
struct 
b(m,n);
c(stu);

return 0;
}


B.c 


b(int m, int n)
{
...
}


c(STU stu)
{
...

}

像上面的这种情况,就是和方案2,因为STU类型是在A.c文件中定义,而B文件中又无法引用到这个结构,多以最好的方法就是按照方案2操作比较节省精力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值