上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: 转载http://www.blue1000.com/bkhtml/c151/2010-11/69613.htm一个类,有成员变量:静态与非静态之分;而成员函数有三种:静态的、非静态的、虚的。那么这些个东西在内存中到底是如何分配的呢?#include"iostream.h"class CObject{public: static int a; CObject(); ~CObject(); void Fun();private: int m_count; int m_index;};void CObject::Fun(){ cout<<"Fun\n&quo 阅读全文
posted @ 2013-11-12 16:27 z折腾 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: 转载http://www.rosoo.net/a/201203/15889.html一、#pragma pack(push,1)与#pragma pack(1)的区别这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式。#pragma pack (n) 作用:C编译器将按照n个字节对齐。#pragma pack () 作用:取消自定义字节对齐方式。#pragma pack (push,1) 作用:是指把原来对齐方式设置压栈,并设新的对齐方... 阅读全文
posted @ 2013-11-12 15:37 z折腾 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 一、注意两点1.C++中struct和class的语法是一致的,但public\private属性相反2.语法成份的嵌套:class嵌套class没有问题,class嵌套struct或者相反都是没有问题C++中struct和class的区别仅仅在于前者默认成员为Public而后者为Private 阅读全文
posted @ 2013-11-12 13:48 z折腾 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 一、LIB文件概念 一个lib文件是obj文件的集合。当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件二、与DLL的区别(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和. 阅读全文
posted @ 2013-11-12 09:26 z折腾 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 一动态库的编译文件->新建->项目选择下一步;然后在应用程序类型里选择DLL在test项目的头文件里加上test.h;并添加下列代码在test.cpp里增加如下代码然后F7编译在Debug目录下会生成我们需要用到的是test.dll和test.lib二、动态库的使用把test.h头文件test.lib和test.dll复制到D:\学习工程\动态库的使用\UseDll\UseDll目录下新建工程UseDLL;并在工程里加上test.h文件右键选择UseDll的属性-》连接器在附加库目录选择dll路径然后再输入上指定lib名字然后编译运行就行 阅读全文
posted @ 2013-11-12 09:11 z折腾 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 一、declspec#ifdef STATIC_LIBS #define DLL_API static#else #define DLL_API __declspec (dllexport)#endif __declspec(dllexport): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。 阅读全文
posted @ 2013-11-11 12:39 z折腾 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 一、为什么不能使两次握手,两次握手就应该可以保证线路的畅通?1)只能建立一个方向的连接,称为半连接记住TCP是全双工的。A向B发出请求,同时收到B的确认,这时只有A、B知道A到B的连接成功了。 但是B没有收到来自A对确认的确认时,是不知道B到A的连接情况的。全双工:指可以同时(瞬时)进行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。2)如果是两次:C发送请求,S应答并分配资源 若S的应答没有到达C端,C认为连接未建立,而S认为建立了S会在一段时间内保留分配的资源如果大量C这样请求,S会崩溃 阅读全文
posted @ 2013-11-10 10:01 z折腾 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 一、fcntl 用以下方法将socket设置成为非阻塞方式 int flags = fcntl(socket,F_GETFL,0); fcntl(socket,F_SETFL,flags|O_NONBLOCK); 将非阻塞的设置回阻塞可以用 int flags = fcntl(socket,F_GETFL,0); fcntl(socket,F_SETFL,flags&~O_NONBLOCK);------------------------------------------------------------------------ #include #include ... 阅读全文
posted @ 2013-11-10 09:17 z折腾 阅读(6466) 评论(0) 推荐(0) 编辑
摘要: 转载http://soft.chinabyte.com/database/138/12116138.shtml 栈,我想大家都知道。栈,是硬件。主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。下面介绍C语言中函数参数的入栈顺序是怎样的。 对技术执着的人,比如说我,往往对一些问题,不仅想做到"知其然",还想做到"知其所以然".C语言可谓博大精深,即使我已经有多年的开发经验,可还是有许多问题不知其所以然。某天某地某人问我,C语言中函数参数的入栈顺序如何?从右至左,我随口回答。为什么是从右至左呢?我终究没有给出合理的解释。于是,只好做了个作业 阅读全文
posted @ 2013-11-09 19:35 z折腾 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 一、栈帧 栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。 从逻辑上讲,栈帧就是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等等。 实现上有硬件方式和软件方式(有些体系不支持硬件栈) 首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(低地址)。 注意:EBP指向当前位于系统栈最上边一个栈帧的底部,而不是系统栈的底部。严格说来,“栈帧底部”和“栈底”是不同的概念;ESP所指的栈帧顶部和系统栈的顶部是同.. 阅读全文
posted @ 2013-11-09 16:42 z折腾 阅读(485) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页