关于问题“struct类型重定义”的解决办法

问题出现的原因

出错的原因是因为你定义了一个头文件去存放struct的定义,但是你在多个类中引用了这个头文件,例如你定义了一个struct放在<a.h>头文件中,你在类A.h 中使用代码:

 #include "a.h"

而你在类B.h 中同样使用了代码:

 #include "a.h"

这样VS 就会对“a.h” 这个文件进行再次编译,这样就会出现本文提到的问题。

解决方法

只要在“a.h” 这个文件的第一行添加如下代码:

 #pragma once

这个代码的意思是对该文件只会进行一次编译,这样就可以避免多次编译带来的struct类型重定义。