C++ 错误error C2011:类型重定义的解决办法

当在.h文件中定义一个枚举(enum)类型时,由于这个.h的头文件,会被其他好几个.h文件引用,所以在编译的时候,会出现error C2011:类型重定义的报错。

这样的错误一度让楼主怀疑人生啊。

其解决办法是:

在报类型重定义的头文件(xxxx.h),最上方加两行:

#ifndef	 _XXXX_
#define  _XXXX_
最下方一行加上

#endif


条件指示符#ifndef,条件指示符#ifndef 最主要的目的就是防止头文件的重复包含和编译,这样才能保证头文件被多个其他文件引用时,内部的数据不会被多次定义而造成错误。


  • 15
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
引用\[1\]中提到了一个错误,即"struct"类型定义。这个错误通常发生在C++代码中,当在多个地方引用了同一个头文件,并且这个头文件中定义了相同的结构体时会出现。引用\[2\]中解释了这个错误的原因,即在多个类中引用了同一个头文件,导致结构体的定义复。解决这个问题的方法是注释掉其中一个头文件中的结构体定义。引用\[3\]中提到了一个具体的例子,即C++中的pthread.h头文件和time.h头文件中都定义了timespec结构体,导致定义。解决方法是注释掉pthread.h头文件中的struct timespec定义。 #### 引用[.reference_title] - *1* *3* [error C2011: “timespec”:“struct”类型定义](https://blog.csdn.net/weixin_26711801/article/details/113315294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于问题“struct类型定义”的解决办法](https://blog.csdn.net/weixin_48082536/article/details/129553697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值