.h文件作为接口存在的。所谓接口就是指类型定义、变量声明、函数声明等等,基本上不会在.h里面放置函数实现。 .c里面才真正实现函数。 比方说,我写一个work的实现: //work.h #ifndef work_h #define work_h //你也可以在这里声明变量,或者定义类型、结构体 void work();//注意这只是一个函数声明 #endif //work.c //work函数的定义,或者说实现 void work(){ //这里才真正实现work中的代码 } 这样一来,如果你想用work.c中的work函数,只要#include "work.h"就可以了。 小技巧: #ifndef work_h #define work_h #endif 这三行代码是为了保证在编译某一个.c或.cpp文件时,work.h头文件只编译一次。 比方你在main.c里面打了10次#include "work.h",这样预处理的时候会向main.c中拷贝10次work.h的代码(预处理时实际上会用work.h中的代码替代#include "work.h"这行代码),有了那三行就可以保证只有第一个拷贝的work.h参与编译,剩下的九个都跳过。(因为work_h在第一次#include的时候被定义了,往后就不会编译#ifndef .. #endif 中间的代码了)
【Ubuntu】关于.c .h 文件
最新推荐文章于 2023-04-04 18:02:18 发布