C语言 有很多.h和.c文件,然后一个.c文件中的函数会调用另一个.c文件中的函数,要怎样才能保证才不会

C语言有很多.h和.c文件,然后一个.c文件中的函数会调用另一个.c文件中的函数,要怎样才能保证才不会出错?... C语言
有很多.h和.c文件,然后一个.c文件中的函数会调用另一个.c文件中的函数,要怎样才能保证才不会出错?
展开
 我来答
百度网友6567883c53
2012-12-05 · TA获得超过4737个赞
知道大有可为答主
回答量:1260
采纳率:0%
帮助的人:1379万
展开全部
楼主你好。
.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 中间的代码了)
更多追问追答
追问
只要#include "work.h",它会自动找到work.c中的work函数吗?
追答
嗯,只要你work.h中有work函数的声明。编译的时候只需要知道声明就够了(声明在work.h中),连接的是时候会从word.c中找定义(定义在work.c中)。
chun280444332
2012-12-07 · TA获得超过123个赞
知道答主
回答量:257
采纳率:0%
帮助的人:115万
展开全部
#ifndef CONDITION
#define CONDITION
void (char *)();//申明任意的函数
#endif
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式