
C/C++
yilin54
这个作者很懒,什么都没留下…
展开
-
精选:局部变量、全局变量、堆、堆栈、静态和全局
一般全局变量存放在数据区,局部变量存放在栈区, 动态变量存放在堆区,函数代码放在代码区。 --------------------------------------------------------------- 栈区是普通的栈数据结构,遵循LIFO后进先出的规则,局部变量安排在那里是ASM时就规定的,这样可以在一个函数结束后平衡堆栈,操作简单,效率高 堆(动态区)在这里应当叫堆栈(不要和转载 2009-04-21 23:16:00 · 1392 阅读 · 0 评论 -
结构体定义注意字节对齐
<br />//正确<br />typedef struct a<br />{<br /> <br /> int m_over; <br /> char m_script_memory[5 * 1024]; <br />}A;<br /> <br />//错误<br />typedef struct b<br />{<br /> <br /> char m_over; <br />原创 2010-12-28 17:14:00 · 833 阅读 · 0 评论 -
字节序-大小端
<br />BIG-ENDIAN(大字节序、高字节序)<br />LITTLE-ENDIAN(小字节序、低字节序)<br />主机字节序<br />网络字节顺序<br />JAVA字节序<br /><br />1.BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响。BIG-ENDIAN就是低位字节排放在内存的低端,高位字节排放在内存的高端。而LITTLE-ENDIAN正好相反。 <br />比如 int a = 0x0原创 2010-06-21 13:48:00 · 6794 阅读 · 2 评论 -
C的关键字——const的理解和用法
<br />关于C的关键字——const的理解和用法<br />const在C中的用法很灵活(相信C++中也一样),个人感觉对之既爱又恨,有时候感觉const很好用,同时又经<br />常会因为它的优点而犯错,犯错的原因除了粗心之外,另一个更重要的,就是以前对const理解不到位。于是今天<br />自己写成一篇小总结。如果是初学者,建议好好看一下,相信帮助比较大;如果是高手,请不吝赐教!<br />上面写了一段废话,就算是小序吧:)接下来就是正文;<br />一、关于const的具体定义:<br /><b转载 2010-06-21 10:48:00 · 486 阅读 · 0 评论 -
文件读写方式归纳
<br />'r' - Open for reading only; place the file pointer at the beginning of the<br />file.<br /><br />'r+' - Open for reading and writing; place the file pointer at the beginning<br />of the file.<br /><br />'w' - Open for writing only; place the file po转载 2010-06-17 16:45:00 · 441 阅读 · 0 评论 -
2字节对齐算法
<br />#define READ_SHORT(dst, src) do { (src) = (zm_uint8*)((zm_int)((zm_uint8*)(src) + 1)&(~1)); (dst) = *(zm_uint16*)(src); (src)=((zm_uint8*)(src))+2; }while(0) <br />从src开始处读取2个字节赋给dst.2字节对齐。先进行src的地址能被2整除操作:+1&(~1);经过运算后使得src的位置对齐,接下来开始读取2个字节给dst.原创 2010-07-13 17:30:00 · 811 阅读 · 0 评论 -
数组名不完全等于指针
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。 想必这种误解的根源在于国内某转载 2010-01-29 10:31:00 · 599 阅读 · 1 评论 -
基本数理知识
1: a 7的二进制:111,右移3位,111000=56.原创 2009-10-28 10:16:00 · 813 阅读 · 0 评论 -
二分查找法
【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 【算法思想】首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果原创 2009-10-29 10:17:00 · 456 阅读 · 0 评论 -
负数利用补码的原理
在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。 数值的补码表示也分两种情况: (1)正数的补码:与原码相同。 例如,+9的补码是00001001。 (2)负数的补码:符号位为1,其余位为该数绝对值的原码按位转载 2009-10-21 16:58:00 · 969 阅读 · 0 评论 -
GCC编译器的常识
(顺便提下,G++是LIUNX下用来编译C++的编译器)在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC转载 2009-05-05 21:08:00 · 2712 阅读 · 0 评论 -
字符串之间的大小比较方法
如果比较字符串的大小,则比较的是字符的ASCII编码的大小。在比较时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较, 1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值 则 继续比较下一位 2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值 则 输出结果:1,表示字符串1 > 字符串转载 2012-11-26 09:00:33 · 11740 阅读 · 1 评论