
C/C++
文章平均质量分 62
sunewer
这个作者很懒,什么都没留下…
展开
-
关于数组名的讨论
用来存放数组的区域是一块在栈中静态分配的内存(非static),而数组名是这块内存的代表,它被定义为这块内存的首地址。这就说明了数组名是一个地址,而且,还是一个不可修改的常量,完整地说,就是一个地址常量。数组名跟枚举常量类似,都属于符号常量。数组名这个符号,就代表了那块内存的首地址。注意了!不是数组名这个符号的值是那块内存的首地址,而是数组名这个符号本身就代表了首地址这个地址值,它就是这个地址,这原创 2007-04-03 10:35:00 · 826 阅读 · 0 评论 -
解析“extern”
1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i;void main()...{ } //B.cpp int i;转载 2007-11-20 10:18:00 · 1196 阅读 · 0 评论 -
COM 学习笔记(一)
QueryInterface的实现规则的理解:1、组件的实例只有一个IUnknown接口。不管通过实例的哪个接口去查询IUnknown接口时,所得到的均将是同一个指针值。这样做的目的之一就是保证组件实例所有接口有同一个入口。并且有一个好处是可以通过查询IUnknown接口来判断两个接口是否指向同一个组件。2、客户可以获取曾经得到过的接口我的理解是,这条规则规定了一个组件的接口集一旦确定原创 2008-01-24 21:34:00 · 1106 阅读 · 0 评论 -
C/C++ 学习要点总结(未整理)
C/C++ 学习要点总结(未整理) 1. 内存对齐问题(struct a{ int a//4 ;char b//1 ;double c//8;}; //sizeof(a)=16 2. Continue语句的使用 3. 拷贝构造函数的作用 4. 多继承且有内嵌对象时的构造函数派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1原创 2007-04-24 11:23:00 · 1305 阅读 · 0 评论 -
BSS段 数据段 代码段 堆栈
BSS段 数据段 代码段 堆栈声明:大部分来自于维基百科,自由的百科全书。BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始转载 2007-04-18 20:32:00 · 1646 阅读 · 0 评论 -
VC字节对齐全攻略
VC中下面几个结构体大小分别是多少呢struct MyStruct{ double m4; char m1; int m3;};struct MyStruct { char m1; double m4; int m3;};#pragma pack(push)//保存对齐状态#pragma pack(16) //设置为16字节对齐struct test转载 2007-04-18 16:15:00 · 1859 阅读 · 0 评论 -
位运算的应用
输入2的n次方:如果突然要你输入2的19次方,你是不是还要想一下呢?敲个524288多累啊。用位运算:1 又快又准。乘除2的倍数:千万不要用乘除法,非常拖效率。只要知道左移1位就是乘以2,右移1位就是除以2就行了。比如要算25 * 4,用25 就好啦。判断偶数: a % 2取模是最常用的判断方法之一。这样要用到除法运算,不好。实际上,还是用位运算解决:a & 1。效果和a % 2是原创 2007-04-19 12:02:00 · 1074 阅读 · 0 评论 -
sizeof用法总结
在VC中,sizeof有着许多的用法,而且很容易引起一些错误。下面根据sizeof后面的参数对sizeof的用法做个总结。 A.参数为数据类型或者为一般变量。例如sizeof(int),sizeof(long)等等。这种情况要注意的是不同系统系统或者不同编译器得到的结果可能是不同的。例如int类型在16位系统中占2个字节,在32位系统中占4个字节。B. 参数为数组或指针。下面举原创 2007-04-18 16:12:00 · 923 阅读 · 0 评论 -
C语言—嵌入式开发
预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你转载 2007-04-16 17:21:00 · 1141 阅读 · 0 评论 -
c++ string详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,为了在我们的程序中使用strin转载 2007-04-04 13:59:00 · 8268 阅读 · 0 评论 -
堆栈的比较
■申请方式① Stack:由系统自动分配。② Heap: 需要程序员自己分配。 C 使用 malloc / delete C++使用 new/free ■申请后的系统响应① Stack:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 (*不是所有的系统都会报错的)② Heap: 操作系统有一个记录空闲内存地址的链表原创 2007-04-02 09:05:00 · 746 阅读 · 0 评论 -
智能指针
原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=56&ID=92844Smart Pointer是C++中的一个大题目,要说清楚他的所有好处很需要费点力气。我就一个功能一个功能的说。有我理解不透的地方希望大家指点。1.copy-to-write当生成一个C++ object的时候如果这个class很大,这个object会占用很多空间。那么每生成一个转载 2007-04-04 13:43:00 · 874 阅读 · 0 评论 -
source insight 快捷键
退出程序 : Alt+F4重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行 : Ctrl+K恰好复制该位置右边的该行的字符原创 2007-12-06 09:52:00 · 1957 阅读 · 1 评论