C++
文章平均质量分 60
和道一文字JC
这个作者很懒,什么都没留下…
展开
-
C语言写的一个容器list
今天无聊用C语言写了一个容器list,我发现现在微软的vs2010已经很规范的处理C语言的编译工作了。比如说变量声明必须在函数最前面,声明一个struct变量的时候必须加上struct关键字等等。扩展性:为了让这个list支持任意类型,list中的节点存储两个变量:一个是用户自定义的类型的对象的地址,一个是next指针。一开始我想把操作都封装起来,全部声明为静态的,然后在operations结原创 2013-07-23 22:17:29 · 1826 阅读 · 0 评论 -
SOCKET编程之WSAEventSelect模型
今天又琢磨了一下WSAEventSelect模型:跟WSAAsyncSelect比起来,不用跟窗口消息挂钩,当然适用面就更广了,还是不错的,里面需要用到的新的东西有,全大写的是结构体,否则是函数:WSAEventSelectWSAWaitForMultipleEventsWSAEVENTWSANETWORKEVENTSWSAEnumNetworkEventsWSACreat原创 2013-09-10 19:58:44 · 1016 阅读 · 0 评论 -
C++函数调用方式(注意是函数调用方式)
C++函数调用方式有三种__cdecl, __fastcall, __stdcall__cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。 _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最转载 2013-09-09 16:18:24 · 994 阅读 · 0 评论 -
C++ new 的工作过程
如果申请的是普通的内置类型的空间:1、如果是申请的是0byte,强制转换为1byte2、使用名为operator new 的标准库函数申请相对应的空间,如果没有足够的空间或其他问题且没有定义_new_hanlder,那么会抛出bad_alloc的异常并结束程序3、如果定义了_new_hanlder回调函数,那么会一直不停的调用这个函数直到问题被解决为止。4、内存申请成功,返回申请到原创 2013-08-13 10:53:00 · 1405 阅读 · 0 评论 -
C++中虚表指针的存放位置
以前一直以为C++为了兼容C而把虚函数表指针Vptr放在了对象末尾,而且在《inside the C++ object model》里面也是这么描述的。但是我错了,今天愕然发现不是这样的。而且无论是在g++编译器还是在ms的编译器上都不是这样的!#include #include using namespace std;#ifndef BYTE#define BYTE char#原创 2013-07-27 14:03:21 · 3744 阅读 · 0 评论 -
C++你所不知道的构造函数!!!
1、初级的理解在创建一个对象的时候会调用这个对象的构造函数,如果用户没有定义构造函数那么编译器会合成一个默认的构造函数。2、中级的理解看过了Inside the object of C++后知道了,原来如果你没有定义构造函数的话,编译器不会永远都给你合成一个默认的构造函数,只有在non-trivial的情况下才会给你合成一个。至于神马情况是non-trival的有下面几种情况:a、原创 2013-08-01 22:28:02 · 686 阅读 · 0 评论 -
VS2010 环境变量 配置
我不知道装什么东西的时候把vs2010的环境变量给弄没了,这样就不能在命令行编译源代码了,有一次突然想学习链接技术,发现没有环境变量敲起来比较麻烦,于是查了一下资料又弄起来了。主要有三个:PATH:D:\Program Files\Microsoft Visual Studio 10.0\VC\bin;D:\Program Files\Microsoft Visual Studio原创 2013-07-23 22:19:11 · 2228 阅读 · 0 评论 -
从一个文本来创建一颗树
在做跟树有关的题目的时候,当然是leetcode上面的题目,我发现leetcode上面的树是这样表示的:{2,1,3,0,7,9,1,2,#,1,0,#,#,8,8,#,#,#,#,7},于是为了便于测试,我可以直接利用这个文本文件来生成一个树,这样生成树的工作就变得非常简单了。代码如下:typedef struct TreeNode{ int value; struct Tr原创 2013-07-23 22:23:52 · 1017 阅读 · 2 评论 -
编译什么时候出现Undefined reference to 的错误
在网上找了很多的资料,现在总结如下:如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件。如果提示未定义的函数是程序中的函数,还有一种很隐蔽的可能:检查改函数的代码的上下文是否有#ifdef或者#ifndef等预编译信息,这也原创 2013-07-23 22:22:30 · 1199 阅读 · 0 评论 -
select模型的示例代码
服务端的代码#include #include #include #include #pragma comment(lib,"ws2_32.lib")#define MAX 512using namespace std;volatile int g_iTotalConn=0;SOCKET g_CliSocketArr[FD_SETSIZE];DWORD PROCES原创 2013-09-10 20:05:53 · 687 阅读 · 0 评论