在目前的设计中,
我写了2个c源文件,a.c和b.c,我需要把b.c中的函数让a能够调用,
其实我也可以把b.c的函数内容全部copy到a.c里,可是这样显得a.c太臃肿。
首先需要定义一个头文件,写上b.c文件里的函数原型:
比如说这样定义 " b.h" :
extern char *getAliasVal(int num); extern char *getNodeName(int num); extern int writeXml(char bufMac[], char bufMod[], char *nodeName, char *aliasVal, int flag);
对于extern关键字,可以这样理解:
加extern的函数实现在外部,不加的在内部。一般包含该实现的头文件,可以不用使用extern了。
然后在a.c源文件中,#include "b.h",一般写在#include的最后一行,避免产生错误。
像我这类新手,需要注意的是#include <b.h>和#include “b.h”的区别,前者的意思是去系统的默认目录去查找b.h文件,而后者是在当前目录下查找b.h文件。
完成定义b.h,并且在a.h中include之后,
就可以使用b.c中实现的函数了。
另外有个编译警告:
warning: incompatible implicit declaration of built-in function ‘exit’
原因是没有包含对应的头文件,只要加上:#include <stdlib.h>即可。