我在C中的头文件有一些问题。
我在C中创建了一个静态库,但存在以下问题:
在头文件中,我实现了(structure.h)中的结构和操作它的函数。所以我使用这个结构有另一个头文件(file1.h)。问题开始是因为我有另一个需要相同structure.h的文件(file2.h)。 (file1.h)和(file2.h)都是相互独立的。
As(file1.h)使用(structure.h)中的结构,如果我尝试在(file2.h)中使用(structure.h),我会在main.c文件中出错。
如何在不同的头文件中正确使用structure.h而不会出错?
答案 0 :(得分:1)
这是一个重新定义的问题。 你应该使用:
#ifndef NAME_H
#define NAME_H
//function declarations
#endif
在每个头文件中。 这些被称为包括警卫。 更多信息:http://en.wikipedia.org/wiki/Include_guard
答案 1 :(得分:0)
一般来说,你应该做两件事:
structure.h
换行于#ifndef
: #ifndef structure_h
#define structure_h
//structure.h content goes here
#endif // structure_h
.h
文件中实现功能。请在.c
文件中实现它们。 .h
仅用于声明它们。