c
zhoxier
这个作者很懒,什么都没留下…
展开
-
va_start、va_end、va_list的使用
转载自:http://www.cnblogs.com/rainduck/archive/2010/11/10/1873417.html1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...); 2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:#incl转载 2012-08-27 15:21:39 · 821 阅读 · 0 评论 -
memcpy和memmove 的使用
memcpy是不考虑两个内存串是否有重叠的情况,而memmove是考虑的,也就是使用这个函数,我们就不用担心复制后的内存是否有误,而memcpy可能会被覆盖!这里是一个在网络上的例子区别:两个函数都是进行n字节内存内容的拷贝,入口参数和返回参数也都一样,可是这两个函数在内部实现上是有一定区别的,这主要是因为dest内存区域和src内存区域可能有一下四种不同的情况,注意count的影响:转载 2012-09-13 11:18:28 · 689 阅读 · 0 评论 -
数组 按行,列存储
二维数组二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。 数组的顺序存储方式由于计算机内存是一维的,多维数组的元素应排成线性序列后存人存储器。数组一般不做插入和删除操作,即结构中元素个数和元素间关系不变化。一般采用顺序存储方法表示数组。(1) 行优先顺序将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。例: 二维数组Amn的按转载 2012-10-10 21:46:04 · 34565 阅读 · 1 评论 -
C/C++中的static
C/C++中的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类的问题。A. 面向过程程序设计中的static关键字1) 静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。静态全局变量定义和使用类似: #inclu转载 2012-10-18 09:11:15 · 697 阅读 · 0 评论 -
栈增长和大端/小端问题
栈增长和大端/小端问题是和CPU相关的两个问题。在内存管理中,与栈对应是堆。对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方式是向下的,是向着内存地址减小的方向增长。在内存中,“堆”和“栈”共用全部的自由空间,只不过各自的起始地址和增长方向不同,它们之间并没有一个固定的界限,如果在运行时,“堆”和 “栈”增长到发生了相互覆盖时,称为“栈堆冲突”,系统肯定垮台。转载 2012-11-01 09:36:28 · 583 阅读 · 0 评论 -
位运算
转自http://blog.csdn.net/zhongjiekangping/article/details/6855864用位运算实现加法也就是计算机用二进制进行运算,32位的CPU只能表示32位内的数,这里先用1位数的加法来进行,在不考虑进位的基础上,如下 1 + 1 =01 + 0 =10 + 1 =10 + 0 =0很明显这几个表达式可以用位运转载 2012-11-02 08:52:28 · 638 阅读 · 0 评论 -
c/c++
第 1章 C语言 1 指针C语言中定义字符串的两种形式:char a[]="hello world";char *b="hello world";对于这两种形式的区别和联系可以使用下面的操作进行区别:(1)sizeof(a)=strlen(a)+1;//主要是C语言中对于字符串的存储特点,会自动的以'\0'作为结束标志。sizeof(b)=4;(2)strlen(a转载 2012-11-01 17:28:12 · 565 阅读 · 0 评论 -
_makepath 和_splitpath
这是在之前的一篇文章中剪裁出来的:_makepath 和_splitpath只是方便查看!在这之前还要在说明一个函数的使用,我们注册时,是想要在注册表中显示我们自己文件名的,这样方便看那么我们需要在之前获得的路径名strPath中提取出文件名字,那么使用_splitpath.在网上看到的使用方法,很简单理解:char path_buffer[_MAX_PATH];char dr原创 2013-01-19 21:43:19 · 1301 阅读 · 0 评论