我想要使用他的脚本时遇到问题:
lib1.h
...
#ifdef LIB1_01
int lib1func(void);
#endif
...
lib1.c
...
#ifdef LIB1_01
int lib1func(void){
...
}
#endif
...
main.c
#define LIB1_01
#include <lib1.h>
int main(){
...
int x = lib1func(void);
...
...
我想在声明#define LIB1_01时使用lib1func(),但是当我使用它时,我有一个'警告:隐式声明函数'错误...为什么?你能帮助我吗 ? 最好的问候。
答案 0 :(得分:1)
推荐替代方案:
lib1.h
#ifndef LIB1_H
#define LIB1_H
int lib1func(void);
#endif
...
lib1.c
#include "lib1.h"
int lib1func(void){
...
}
的main.c
#include "lib1.h"
int main(){
...
int x = lib1func(void);
...
...
注:
1)你应该声明&#34; int lib1func(void)&#34;在标题中,但您可以在任何地方定义它。在lib1.c中(如果您愿意),甚至是main.c.只需确保您只定义一次。
2)注意在整个标题正文周围使用guard。
3)另请注意include "myheader.h"
(对于您自己的头文件)与#include <systemheader.h>
的使用。 &#34; <>
&#34;语法只应用于系统头。
答案 1 :(得分:0)
要使用这种包含,请使用选项I
进行编译。
gcc myfile.c -o myfile -I .
.
符号表示查看当前目录。