c语言调用自己编译的头文件,写自己的头文件 ——C语言的多文件编译
每个学习C语言的人 肯定都知道程序的第一行要写上一个 #include 包含一个头文件
如果你有兴趣 可以去你的编译器的安装目录下找到这个文件 看看这个文件里有什么内容
这里也有一个gcc 的stdio.h文件http://115.com/file/bhy6k2yl#
stdio.h?
如果你自己写的程序很大 有很多的函数 ,那么你要怎么处理呢? 全部写在一个main.c文件里面? 肯定不是个好办法
一般是写在不同的源文件里面,然后写个头文件 ,要使用源文件里的函数 只要在文件前面加个#include "your_head_file.h"就可以了。
例如:
test.c 的内容是
#include
void fun1()
{
do_something();
}
再写一个test.h 内容是
#ifndef _TEST_H_
#define _TEST_H_
void fun1();
#endif
然后在要调用 fun1();函数的主文件前面加一个
#include"test.h"
就可以直接使用这个函数了。
如果你是用GCC编译器在给你的程序编译,那么要用下面的方法编译你的程序
假设我们有下面这样的一个程序,源代码如下:
/* main.c */
#include "mytool1.h"
#include "mytool2.h"
int main(int argc,char **argv)
{
mytool1_print("hello");
mytool2_print("hello");
}
/* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
/* mytool1.c */
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s\n",print_str);
}
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif
/* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2 print %s\n",print_str);
}
当然由于这个程序是很短的我们可以这样来编译
gcc -c main.c
gcc -c mytool1.c
gcc -c mytool2.c
gcc -o main main.o mytool1.o mytool2.o这样的话我们也可以产生main程序?
如果你是用SDCC 给单片机之类的小程序编译
则 上面的用法是
sdcc -c mytool1.c
sdcc -c mytool2.c
sdcc main.c mytool1.rel mytool2.rel -o main
c语言调用自己编译的头文件,写自己的头文件 ——C语言的多文件编译相关推荐
- c语言调用同一目录下的函数,从C中同一目录中的另一个文件调用函数
这里有几件不同的事情.首先,我将介绍多个文件的基本编译是如何工作的. 如果你有多个文件,重要的是声明和函数定义之间的区别.定义可能是您在定义函数时习惯的定义:您编写函数的内容,如 int square ...
- c语言自动拷贝u盘文件,写了一个偷偷拷贝老师U盘所有文件的程序……蛋疼……………...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 直接双击运行,程序会每一秒检查一下是否有移动盘插入,如果有,就在C盘下新建一个文件夹copy,并把移动盘内所有的文件拷贝到C:\copy下.拷贝完成后自动 ...
- 秒表c语言程序代码,求大神帮忙写一篇简单的C语言秒表程序, 谢谢。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include Unsigned char code Tab[10]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0 ...
- Python 文件写操作
#文件写模式 f=open('a.txt','w',encoding='utf-8') #文件写 f.write('11111\n') f.write('2222\n') f.write('3333\ ...
- go语言调用c 的头文件 so,Golang生成共享库(shared library)以及Golang生成C可调用的动态库.so和静态库.a...
Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事 ...
- c++头文件被c语言调用需要注意什么_嵌入式C语言之模块化编程
C语言中的模块化体现在两个方面: 1 函数. 函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块.这样,C语言就实现了最基本的模块化. 2 文件. 在C语 ...
- c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...
c语言从头开始(三:编译器工作原理) [[枫歌枫歌]c语言从头开始(三:编译器工作原理)]https://toutiao.com/group/6568056688174170628/?iid=1590 ...
- c 编译易语言dll文件,易语言调用DLL的问题(付dll文件,VC++编译的)
AA直译器v1.02.rar (795.15 KB, 下载次数: 143) 2012-11-27 17:23 上传 点击文件名下载附件 dll说明: CE自动汇编直译器: AA引擎 各语言通用DLL ...
- c51语言的标准库函的头文件,C51编程中头文件的使用
头文件在C51的编程中是不可缺少的部分.本文将对keil C中常用头文件予以说明,并就如何编写头文件进行初步介绍. 一.C51常见本征函数库 一些常见的头文件都是keil C自带的,在安装目录下的C5 ...
最新文章
- 大一就会这么多,还在问有没有前途? | 每日趣闻
- struts2文件下载及 param name=inputNameinputStream/param的理解
- 码农翻身讲计算机基础:并发,同步与信号量
- PMCAFF微课堂「已结束」 | 阿里资深运营揭秘电商运营与纯互联网运营的区别与互通
- 第二章 Linux系统安装 - VMware虚拟机安装、卸载与使用
- python引入redis_使用python向Redis批量导入数据
- 洛谷 U3357 C2-走楼梯
- 无人车火了 百度是如何做到的?
- ms sql 带自增列 带外键约束 数据导入导出
- Qt总结:QMessageBox(原生态弹出框及究极超nice封装自定义弹出框)
- AB32VG1开发板学习(2)GPIO,多线程点灯
- 计算机技术和教育,计算机技术和现代数学教育
- 10G XFP万兆光模块全类型介绍
- Spyder学习笔记1-Jack Xu
- IT项目经理成长手记学习(一)
- Simulink之S-function函数笔记之二
- 如何查询计算机com口使用
- 使用Flash Loader(JTAG模式)下载EPCS器件
- mongoose的删除和修改
- 面试复习-计算机基础
热门文章
- Android colorPrimary、colorPrimaryDark、colorAccent详解
- Springboot+Mysql企业员工绩效工资管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的餐厅收银管理系统
- 基于springboot框架的java学生管理系统
- 郑大计算机组成与维护在线测试,郑大远程教育《计算机组成原理》第08章在线测试...
- java list 之详解_Java高级技术之List详解
- 招商:笔试题(数组统计重复次数,面包累计问题)
- ICE提纲之demo/IceStorm/clock(发布者/订阅者)
- hisicv200 exfat支持(转)
- 【同行说技术】Java程序员小白变大神必读资料汇总(三)