Linux C:在包含头文件中重新定义错误

我有一个项目,其中包含以下标题包括地图:

main.c <- main.h <- tcphelper.h <- tcptest.h <- util.h <- udptest.h <------------- util.h 

util.h中 ,我定义了一个struct cpu_usage的函数原型:

 void get_cpu_usage(struct cpu_usage *cu); 

现在当我通过GCC编译这个项目时,我有这个重定义错误。 如何解决这个问题?

谢谢!

 In file included from udptest.h:15:0, from main.h:10, from main.c:7: util.h:27:8: error: redefinition of struct cpu_usage struct cpu_usage{ ^ In file included from tcptest.h:14:0, from tcphelper.h:10, from main.h:9, from main.c:7: util.h:27:8: note: originally defined here struct cpu_usage{ ^ 

您需要将头文件添加到头文件,以防止多次包含其内容。 例:

 #ifndef UTIL_H_INCLUDED #define UTIL_H_INCLUDED /* header contents goes here */ #endif /* UTIL_H_INCLUDED */