关于c语言不同文件之间直接函数接口引用的简介
来源:互联网 发布:mac os 卸载软件 编辑:程序博客网 时间:2024/06/14 21:20
在工作中,很多情况下是当前正编辑的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)
{
...
通常情况下我们有如下两种处理方式:
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操作比较节省精力。
1 0
- 关于c语言不同文件之间直接函数接口引用的简介
- 同一个C语言工程不同C文件之间的函数互相调用问题(一)
- 同一个C语言工程不同C文件之间的函数互相调用问题(二)
- 同一个C语言工程不同C文件之间的函数互相调用问题(三)
- 基于C语言的SQLite操作接口函数简介
- 基于C语言的SQLite操作接口函数简介
- SQLITE3 C语言接口 API 函数简介
- 关于接口、变量、指针、函数名和引用之间的联系
- C语言中不同函数之间怎么传值?
- c语言关于引用&的使用
- C语言中关于文件操作的常用函数
- 关于c语言的一些文件操作函数
- 关于C语言头文件包含的常用函数介绍
- c语言关于文件操作的常用函数(新手入门看)
- 不同编程语言之间的函数的关联
- 在c语言之中文件的读写和函数与函数之间参数的调用
- c语言中不同数据类型之间的相互转化
- 关于Java 中几种不同的引用jar文件的方法
- 在Windows10下运行gVim
- 怪物的攻击 掉落金币
- 批量删除Windows补丁
- sublime text 3 快捷键大全以及配置编译环境
- Android如何获取网络连接状态及怎样调用网络配置界面
- 关于c语言不同文件之间直接函数接口引用的简介
- poj 1609 Tiling Up Blocks dp入门之记忆化搜索
- html5 js 实现浏览器全屏效果(F11)
- 44-info.plist项目配置文件的常用属性,以及Info.plist对应xcode的project的图形界面(发布配置)
- Android拷贝工程不覆盖原工程的配置方法
- Android自定义组件系列【15】——四个方向滑动的菜单实现
- android编译命令
- 45-pch文件在xcode6中的使用
- 1160 蛇形矩阵