码迷,mamicode.com
首页 > 其他好文 > 详细

VC中编译报错:error C2011: 'fd_set' : 'struct' type redefinition

时间:2014-12-07 19:02:46      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   on   文件   div   

这是头文件包含顺序的问题,原因与解决办法见下面代码的注释。

/*
包含下面这两个头文件时,必须把winsock2.h放在前面
否则编译报错,N多的重定义错误:例如 error C2011: ‘fd_set‘ : ‘struct‘ type redefinition
*/
#include <WinSock2.h>
#include <Windows.h>

int main(int argc, _TCHAR* argv[])
{
    Sleep(1);
    return 0;
}
其实可以不包含Windows.h,因为在winsock2.h中已经包含的windows.h

如果是很多的文件的话,找包含关系太繁琐,可以直接把 winsock2.h 的包含放在cpp最前面。

为什么会这样呢?头文件的包含还要求顺序,在MSDN中却没有解释。
只能说是微软的头文件写的有问题了。

VC中编译报错:error C2011: 'fd_set' : 'struct' type redefinition

标签:style   blog   io   ar   color   sp   on   文件   div   

原文地址:http://www.cnblogs.com/zhaojk2010/p/4149668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!