如何在不同的头文件中正确使用相同的头文件

时间:2014-12-11 21:15:57

标签: c header-files

我在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而不会出错?

2 个答案:

答案 0 :(得分:1)

这是一个重新定义的问题。 你应该使用:

  #ifndef NAME_H
  #define NAME_H

  //function declarations

  #endif

在每个头文件中。 这些被称为包括警卫。 更多信息:http://en.wikipedia.org/wiki/Include_guard

答案 1 :(得分:0)

一般来说,你应该做两件事:

  1. 将整个structure.h换行于#ifndef
  2. #ifndef structure_h

    #define structure_h

    //structure.h content goes here

    #endif // structure_h

    1. 您不应在.h文件中实现功能。请在.c文件中实现它们。 .h仅用于声明它们。