读书笔记
lovey_carolin
这个作者很懒,什么都没留下…
展开
-
#pragma用法
<br />1、#pragma pack(n)和#pragma pack()<br />例如:<br />#pragma pack(1) // 按照1字节方式进行对齐<br />struct sample<br />{<br />char a;<br />double b;<br />};<br />当结构体没有加#pragma pack(n)的时候,结构体按最大的成员那个对齐;(所谓的对齐是指对齐数为n时,对每个成员进行对齐,既如果成员a的大小小于n则将a扩大到n个大小;如果a的大小大于n则使用原创 2011-01-25 10:18:00 · 359 阅读 · 0 评论 -
内存管理
<br />内存共分为三个部分:静态区、栈(堆栈就是栈)、堆。<br /> <br />静态区:保存自动全局变量和static变量(包括static全局和局部变量)。静态区的内容在整个程序的生命周期都存在,由编译器在编译的时候分配。<br /> <br />栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。<br /> <br />堆:由malloc系列函数或new操作符分配的内存。其生命周期由free或delete决定。在没有释放之前原创 2011-04-14 15:29:00 · 444 阅读 · 0 评论 -
enum关键字——C语言深度剖析
枚举类型的定义方式如下:enum enum_type_name{ ENUM_CONST_1, ENUM_CONST_2, ... ENUM_CONST_n}enum_variable_name;注意:enum_type_name是自定义的一种数据类型名,而enum_variable_name为enum_type_name类型的一个变量,enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name类型的变量enum_variabl原创 2011-04-08 13:30:00 · 1219 阅读 · 0 评论 -
const与#define宏定义的区别——C语言深度剖析
const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静态区),而#define定义的宏常量在内存中有若干个拷贝。#define宏是在预编译阶段进行替换,而const修饰的只读变量是在编译的时候确定其值。#define宏没有类型,而const修饰的只读变量具有特定的类型原创 2011-04-07 15:52:00 · 6196 阅读 · 0 评论 -
this指针
<br />1)this指针是什么时候创建的?<br /> this在成员函数的开始执行前构造,在成员的执行结束后清除。<br /> 采用TYPE xx的方式定义的话,在栈里分配内存,这时候this指针的值就是这块内存的地址。<br /> 采用new的方式创建对象的话,在堆里分配内存,new操作符通过eax返回分配的地址(VC通过ecx寄存器传递this参数),然后设置给指针变量。之后去调用构造函数,这时将这个内存块的地址传给ecx。<br /> <br />2)this指针是如何访问类中原创 2011-05-12 10:53:00 · 421 阅读 · 0 评论 -
static变量和static函数的用法摘抄
一、 static 变量<br />static变量大致分为三种用法<br />1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期. <br />2. 用于全局变量,主要作用是限制此全局变量被其他的文件调用. <br />3. 用于类中的成员.表示这个成员是属于这个类但是不属于类中任意特定对象<br />1. 静态局部变量<br />静态局部变量属于静态存储方式,它具有以下特点:<br />(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍与自动转载 2011-05-10 11:15:00 · 549 阅读 · 0 评论 -
数据结构(严蔚敏)------双链循环线性表
精辟::在进行链表的插入和删除操作过程中,将前置指针、结点、后置指针三个部分看作一个整体,当进行指向操作时,指针指向的是整个结构体,而不是指向其中的前置或是后置。原创 2011-03-08 16:32:00 · 1145 阅读 · 0 评论 -
数制转换
十进制N和其它d进制数的转换: N = (N div d)*d + N mod d (其中:div为整除运算,mod为求余运算)原创 2011-03-09 15:48:00 · 399 阅读 · 0 评论 -
对VC++一些常见问题的整理
(1)为什么某个类突然在工作区间里面突然看不见了?只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了 (2)在基于对话框的程序中,一按回车键,对话框就没了。把确定按纽的缺省属性前面的对勾去掉,重载OnOk()函数,在OnOk()函数里注释掉调用基类的OnOk()函数那行代码(3) 为什么我的VC6.0自动显示成员列表功能时有时无?删除该项目扩展名为.ncb文件,重新打开该项目。(4)孙老师的视频教程第一课的程序,为什么在我机子上不行?选菜单pr转载 2011-03-01 14:57:00 · 482 阅读 · 0 评论 -
VC文件操作
<br /><br />第一个,先介绍一个我认为最简单的VC文件操作类,可以直接按行来读取文件,输出到文件时可以将字符串直接输出,而不用按照字节来读取和写入.<br />VC中用CStdioFile读写文件的方法.txt <br /> <br /> <br /> 使用这种方法时,可能会出现一种错误情况,就是你使用WriteString(str)方法时,如果输出的是汉字时,可能会变成乱码.解决办法为:<br />CStdioFile.WriteString无法处理中文<br />CStdioFile 的bug转载 2011-03-01 10:57:00 · 594 阅读 · 0 评论 -
C、C++指针
从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量int *p; //首先从 P处开始,先与*结合,所以说明 P 是一个指针,然后再与 int结合,说明指针所指向的内容的类型为int 型.所以 P是一个返回整型数据的指针int p[3]; //首先从 P处开始,先与[]结合,说明 P 是一个数组,然后与 int结合,说明数组里的元素是整型的,所以 P是一个由整型数据组成的数组int *p[3]; //首先从 P处开始,先与[]结原创 2011-01-24 16:21:00 · 342 阅读 · 0 评论 -
《深入浅出MFC》学习笔记
第一章 win32 基本程序概念<br /><br />windows 是一个“以消息为基础的事件驱动系统”。当系统内核捕捉到外围设备发生的事件后,将以一种特定的消息传递出去。而用户程序在接收到相应的消息后再做出相应的处理(否则系统以默认函数处理)。处理窗口过程的一般是窗口函数(window procedure)。Windows 程序的执行流程如上图。<br />窗口函数习惯上称作回调函数,回调函数类似于C 语言中bsearch (二分法查找)函数的cmp (用于比较两个元素的大小)参数:<br />//转载 2011-04-20 11:14:00 · 598 阅读 · 0 评论