C++ Error:C2011: 'struct' type redefinition
C++ Error:C2011: 'struct' type redefinition
但是在c++语言中,#ifndef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifndef宏定义,一个c文件包含同一个h文件多次还是会出现全局变量重定义的错误。
使用#ifndef可以避免下面这种错误:如果在h文件中定义了全局变量,一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误;如果加了#ifndef,则不会出现这种错误。
最好把头文件的内容都放在#ifndef和#endif中。不管头文件会不会被多个文件引用,都要加上这个。一般格式是这样的:
#ifndef <标识>
#define <标识>
......
......
#endif
<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前面加下划线,并把文件名中的“.”也变成下划线,如:stdio.h
#ifndef _STDIO_H
#define _STDIO_H
......
#endif
条件编译有三种形式,理解了其中一种以后碰到了再收即可。(转自网络)
C++ Error:C2011: 'struct' type redefinition的更多相关文章
- 解决ERROR C2011: 'FD_SET' : 'STRUCT' TYPE REDEFINITION问题
在socket编程的过程中头文件中 #include <windows.h> #include "stdafx.h" #include "WinSock2.h ...
- VC中编译报错:error C2011: 'fd_set' : 'struct' type redefinition
这是头文件包含顺序的问题,原因与解决办法见下面代码的注释. /* 包含下面这两个头文件时,必须把winsock2.h放在前面 否则编译报错,N多的重定义错误:例如 error C2011: 'fd_s ...
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
http://www.cnblogs.com/ark-zhang/archive/2013/06/19/3144383.html 首先说明这个问题由于重复定义引起的编译错误. 先说明解决方法,然后 ...
- error C2011: “timespec”:“struct”类型重定义
error C2011: “timespec”:“struct”类型重定义 C++ pthread pthread.h 中的 timespec 和time.h 中的 结构定义重复了 ,同时两个头文件中 ...
- error C2011: “Picture”:“struct”类型重定义
今天引用外来库时出现问题,也许是版本问题. 错误如下: .....\oursun\cincludes\quickdraw.h(309): error C2011: “Picture”:“struct” ...
- ASP.NET MVC 提示there was error getting the type的解决方法
在MVC中根据模型类创建控制器时提示there was error getting the type的原因是你新建的这个类模型文件后没有重新生成,先重新生成项目就可以添加控制器了.
- jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded; text/html; charset=UTF-8'
tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: public void doPost(HttpServle ...
- [virsh] error: unknown OS type hvm解决办法
今天在linux服务器上编译安装升级了下qemu,升级命令如下: root@ubuntu:/opt/qemu-# ./configure --prefix=/usr/local/ --target-l ...
- MFC中使用ATL报错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
我在MFC中使用ATL函数A2W的时候报如下的错误: error C4430: missing type specifier - int assumed. Note: C++ does not sup ...
- Ubuntu urllib2.URLError:<urlopen error unknown url type:https>
描述: python中urllib2 下载网页时,出现错误urllib2.URLError:<urlopen error unknown url type:https> 解决方法: pyt ...
随机推荐
- uni-app (uView) select下拉框添加模糊搜索
先看效果: 因为uniapp内置的下拉查询是没有输入模糊搜索的,有的列表选项过多时还是需要这个搜索功能,所以只能自己筛选 (前台.后台两种方法). 下面是代码: <template> &l ...
- winform应用程序
1.winform桌面应用程序是一种智能的客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等 2.属性 Names:在后台要获得前台的控件对象,需要使用Name属性 Visi ...
- python生成csv并发送邮件
python版本3.9.4 1.生成csv的方法 #make_csv.py# import csv def produce_csv(): # 1. 创建文件对象 f = open('temp.csv' ...
- 001.shell-每日练习一文件创建
001.shell-每日练习一文件创建 0x00.练习要求 在/usr/local/uz654目录下,按照xxxx-xx-xx生成一个文件,如:2023-02-11.log 把磁盘的使用情况写到这个文 ...
- springboot上传文件失败:The temporary upload location [/tmp/tomcat.7112002115745457830.8765/work/Tomcat/localhost/ROOT] is not valid
字面意思就是上传的临时目录不存在,问题就是linux系统会自动清理tmp目录下超过10天没有任何操作的目录或文件 解决办法 1.重启springboot服务,当然这只是暂时的,下次隔太久一样会失效 2 ...
- 将【jar包、bat、其他文件】注册到windows服务的三种方法
将[jar包.bat.其他文件]注册到windows服务的三种方法 1.instsrv.exe和srvany.exe 1.下载配置instsrv和srvany 下载地址:https://dl.pcon ...
- ubuntu18.04 安装 opencv(版本4.5.5) cmake(版本3.25)
参考链接:安装cmake https://blog.csdn.net/Man_1man/article/details/126467371 安装 opencv https://blog. ...
- [iOS]获取地理位置信息
1.在工程的 info.plist 文件中增加两个key( 右键 - Add Row ) Privacy - Location Always and When In Use Usage Descrip ...
- MySQL简介&通用语法&分类
一.SQL简介 1.结构化查询语言,一门操作关系型数据库的编程语言 2.定义操作所有关系型数据库的统一标准 3.对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为"方 ...
- python json表格化输出
需求 将json数据以表格形式输出 超长文本换行输出 能显示中文 在linux终端输出 实现 首先数据的模样.既然是表格化输出,那必然传入的数据是一个数组(废话),如果一个项文本很长需要换行输出,那这 ...