繁体   English   中英

C预处理程序指令错误

[英]C preprocessor directive error

我想使用他的脚本时遇到问题:

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(),但是使用它时出现“警告:函数的隐式声明”错误...为什么? 你能帮助我吗 ? 最好的祝福。

推荐的替代品:

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)您应该在标头中声明“ int lib1func(void)”,但是您可以在任何地方定义它。 在lib1.c(如果愿意)中,甚至在main.c中。 只要确保只定义一次即可。

2)注意在整个割台本体周围使用防护罩

3)还要注意使用include "myheader.h" (用于您自己的头文件)与#include <systemheader.h> <> ”语法应仅用于系统头文件。

要使用这种包含,请使用选项I编译。

gcc myfile.c -o myfile -I .

. 符号表示在当前目录中查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM