自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 学小记

有空需要看一下的知识点:Cstring Unicode与非Unicode的环境内存对齐http://www.ibm.com/developerworks/library/pa-dalign/嵌入式系统 BootLoader 技术内幕 http://www.dzjs.net/html/qianrushixitong/2006/0801/134.htmlNBOOT,EBOOT以

2012-11-25 13:48:57 227

转载 #define用法集锦

#define 用法集锦Definition:The #define DirectiveYou can use the #define directive to give a meaningful name to a constant in your program. The two forms of the syntax are:Syntax

2013-01-09 15:49:47 321

转载 浮点数在内存中的表示

C语言:浮点数在内存中的表示单精度浮点数: 1位符号位   8位阶码位   23位尾数双精度浮点数: 1位符号位   8位阶码位   52位尾数 实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的位数。比如32位机上float型为23位       double型为52位。单精度float型存储在内存中的大小为4个字节,即32位

2013-01-09 15:12:14 399

原创 续:一个带头结点的单链表反转(递归)

接着前面的循环算法(一个带头结点的单链表反转)实现的反转,再试试递归,主要是这个头结点的处理有点麻烦,不过还是解决了,不知道这样有什么缺陷?递归的算法实现在代码的第72行开始。#include#includetypedef char ElemType;typedef struct Node{ ElemType data; struct Node *next;}SLink;

2012-12-12 16:21:26 687

原创 一个带头结点的单链表反转

其实网上有很多这个代码 但俺是初学者 理解别人的代码挺晦涩的 感觉这反转的道理挺简单的 还是想自己按照自己的想法敲一遍看看 第一次失败的原因是忽略了指向头结点自身的指针是不能改变的 //WinXP  VC6 #include#includetypedef char ElemType;typedef struct Node{ ElemType data; struct Node

2012-12-12 12:04:27 1159 1

转载 C++ 对象的内存布局(下)

C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel  <<<点击这里查看上篇 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节

2012-12-11 15:34:19 231

转载 C++ 对象的内存布局(上)

C++ 对象的内存布局(上)陈皓http://blog.csdn.net/haoel07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是

2012-12-11 13:51:27 276

转载 内存对齐的规则以及作用

点击打开链接首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include  4  5 using namespace std; 6  7 struct st1  8 { 9     char a ;10     int  b ;11     short c ;12 };13 14 s

2012-12-11 13:34:44 222

转载 深入理解typedef

点击打开链接首先请看看下面这两句:                   typedef int a[10];                 typedef void (*p)(void);如果你能一眼就看出它们的意思,那请不要再往下看了。如果你不太理解,或概念还有些模糊,请继续往下看吧。typedef用来声明一个别名,typedef后面的语法,是一个声明。

2012-12-11 11:23:16 351 1

转载 数组指针和指针数组的区别

数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的

2012-12-11 10:17:27 320

转载 C++ 虚函数表解析

C++ 虚函数表解析前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行

2012-12-10 15:38:24 235

转载 用C++设计一个不能被继承的类

用C++设计一个不能被继承的类分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造

2012-12-09 19:45:15 746 1

转载 C++箴言:接口继承和实现继承

C++箴言:接口继承和实现继承转发起源:面试题12:面向对象的三大特征 面向对象的三大特征是封装性、继承性和多态性:   封装性:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private,  protected,public)。   继承性:广义的继承有三种实现形式:实现继承(使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗

2012-12-09 15:54:44 450

转载 WaitForMultipleObjects()

多线程同步 -- WaitForMultipleObjects()函数的使用详解WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象(关于该函数的描述和例子见MSDN,)。但同时该函数在用法上却需要一定的技巧。  原型:[c-sharp] view plaincopy

2012-12-03 17:46:24 315

转载 CreateCompatibleDC

CreateCompatibleDC函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。函数原型:HDC CreateCompatibleDC(HDC hdc);参数:hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NU

2012-11-28 15:38:17 508

转载 OnEraseBkgnd与OnPaint

OnEraseBkGnd与OnPaint的联系问题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省  的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面,  由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd  函数,这时就和窗口缺省的背景刷相关了.缺省的  OnEraseBkGnd操作使用窗口的缺省背景刷

2012-11-27 11:22:05 462

转载 VC中OnPaint()

VC中OnPaint()的工作原理用了两年的VC,其实对OnPaint的工作原理一直都是一知半解。这两天心血来潮,到BBS上到处发帖询问,总算搞清楚了,现在总结一下。    对于窗口程序,一般有个特点:窗口大部分的区域保持不变,只有不分区域需要重新绘制。如果将整个窗口全部刷新的画,就做了许多不必要的工作,因而,MFC采用了一套基于无效区的处理机制。在分析无效区处理之前,我们要明

2012-11-26 14:57:13 1459

转载 initialization of 'XXX' is skipped by 'case' label 原因及解决办法

initialization of 'XXX' is skipped by 'case' label 原因及解决办法今天遇到这个问题,在网上看了一会资料后找到原因,即:switch 的 case 中不能定义变量,不然就会报错.可能是变量的初始化会因为有时候case条件不被执行而跳过.后来想到三个解决的方法:1:用if else 代替 switch 语句;

2012-11-26 12:09:15 684

转载 [VC]Windows sockets 网络编程(3) — 非阻塞模式开发

[VC]Windows sockets 网络编程(3) — 非阻塞模式开发一、套接字的非阻塞模式       套接字的非阻塞模式是指套接字在执行操作时,调用的函数不管操作是否完成都会立即返回的工作模式。根据其返回的错误代码,确定操作是否正确完成。二、设置套接字的非阻塞模式       在使用socket()和WSASocket()函数创建套接字时,默

2012-11-25 16:21:45 617

转载 VC中使用API编写的socket程序中如何设置阻塞和非阻塞

VC中使用API编写的socket程序中如何设置阻塞和非阻塞accept,recv 关于阻塞和非阻塞概念,可能有些初学编程的人不是很清楚.    阻塞是指在函数执行时如果条件不满足,程序将永远停在那条函数那里不在往下执行,而非阻塞则是函数不管条件是否满足都会往下执行.例如在通讯过程中,当接收数据的时候,对于阻塞方式,程序将一直等到接收到数据才向下执行,而对于非阻塞方式,不管是否接收到数

2012-11-25 16:18:38 1307

转载 union 的sizeof()问题

union 的sizeof()问题 union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char b;}; coutcoutcout union的大小取决于它所有的成员中,占用空间最

2012-11-24 15:59:19 533

转载 IO - 同步,异步,阻塞,非阻塞

IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识

2012-11-22 14:12:51 272

转载 DECLARE_DYNAMIC()与IMPLEMENT_DYNAMIC()

MFC六大关键技术之(二)——运行时类型识别(RTTI)运行时类型识别(RTTI)即是程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的sizeof()运算子类似的地方(包含一个头文件,

2012-11-21 22:15:35 2378

转载 WSAStartup(0x0101, &wsaData); (WSADATA wsaData;)

WSAStartup 百度百科简介  WSAStartup,即WSA(Windows SocKNDs Asynchronous,Windows异步套接字)的启动命令。是Windows下的网络编程接口软件Winsock1 或 Winsock2 里面的一个命令(Ps:Winsock 是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口)。详细说明

2012-11-21 15:52:11 2801

转载 关于#pragma comment(lib,"ws2_32.lib")和 #pragma warning(disable : 4786)

关于#pragma comment(lib,"ws2_32.lib")(转)#pragma warning(disable : 4786) 有什么用呢?pragma   comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。  和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的程序别人在使用你的代码的时候就不用

2012-11-21 15:36:42 973

转载 VC中用户自定义消息

VC----用户自定义消息 用户自定义一个类,这个类不一定要有界面(完全可以是不可视的),要求自定义的类可以响应某个自定义消息。首先能够响应消息的类必须都从CCmdTarget类中派生,因为只有以这个类中提供了消息的框架和处理机制,而CWnd类也派生与此类。CWinApp类、CDocument类、CDocTemplate类等都是CCmdTarget的派生类,即子类;而CFr

2012-11-20 14:30:38 468

转载 子网掩码 子网划分

子网掩码(百度百科)子网划分(百度百科)子网和子网掩码的作用1.子网的作用  使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。2.子网掩码的作用  通过IP 地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网络地址和主机号,

2012-11-20 09:51:41 489

转载 VC“cannot execute program”错误的解决方法

VC“cannot execute program”错误的解决方法编译连接都成功,但是运行的时候却出现“ cannot  execute program”的对话框解决方法很简单,Project-》Setting-》Debug选择Executable for debug session选项,选择编译连接后正确的可执行文件的路径就可以了

2012-11-19 10:21:08 3163

转载 [MFC]DECLARE_MESSAGE_MAP() 的理解

[MFC]DECLARE_MESSAGE_MAP() 的理解只要当前类是CCmdTarget派生的,则必须提供消息映射以处理消息。   具体方式是在类或者结构体末尾添加DECLARE_MESSAGE_MAP(无分号),然后在定义类成员函数的.CPP文件中,使用BEGIN_MESSAGE_MAP()宏和 END_MESSAGE_MAP()宏来实现对消息的处理。

2012-11-17 17:51:07 10642

转载 谈谈父窗口和所有者窗口

谈谈父窗口和所有者窗口一、概念和区别    在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。    所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 par

2012-11-17 17:25:44 338

转载 include <>和 include ""有什么区别

头文件其实,两者之间是没有多大差别的,只是为了提高查找效率而区分的。 当你包含一个头文件时,编译时,需要找到那个头文件,使用<>这种方式,编译器查找的时候,会在编译器的安装目录的标准库中开始查找,""这种方式,会在当前的工程所在的文件夹开始寻找,也就是你的源程序所在的文件夹。有的编译器,要求十分严格,不能混用,有的就可以。

2012-11-06 19:33:35 371

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除