摘要: 在VC6.0中sizeof结果是16.我电脑上装了个linux虚拟机,在虚拟机上GCC中结果是12,恩不同编译器默认对齐数值不一样。 VC 默认为 8 gcc 默认为 4 有个编译参数控制对齐。 #pragma pack(4) 加上这个,对齐应该一样了。VC和GCC默认的都是4字节对齐,编程中可以使用#pragma pack(n)指定对齐模数。出现以上差异的原因在于,VC和GCC中对于double类型的对齐方式不同。 Win32平台下的微软VC编译器在默认情况下采用如下的对齐规则: 任何基本数据类型T的对齐模数就是T的大小,即sizeof(T)。比如对于double类型(8字节),就要求... 阅读全文
posted @ 2014-01-03 19:49 天天向上... 阅读(744) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/gmh915/archive/2009/09/30/1576995.html这里有些sscanf()的一些使用说明,都是从论坛,Blog里整理出来的。供大家使用。 通过学习和使用个人认为,在字符串格式不是很复杂,但是也并不简单的时候用这个函数比较合适,这个尺度就要靠自己把握了,字符串不是很复杂,但自己写个处理的函数比较麻烦,效率也不高,就用这个函数,如果字符串很复杂,那就用正则表达式吧。不多说了,看看下面这些介绍和列子吧!名称:sscanf() - 从一个字符串中读进与指定格式相符的数据.函数原型:Int sscanf( string str, s 阅读全文
posted @ 2013-12-17 23:42 天天向上... 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.csdn.net/tigerjibo/article/details/82995892012-12-15 19:231636人阅读评论(2)收藏举报目录(?)[-]container_of宏举例来说明container_of的使用正确示例错误示例1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。 2>接口: container_of(ptr, type, member) ptr:表示 阅读全文
posted @ 2013-12-17 23:37 天天向上... 阅读(243) 评论(0) 推荐(0) 编辑
摘要: http://www.oschina.net/code/snippet_257994_107891.[代码][C/C++]代码跳至[1][全屏预览]view sourceprint?01#include 02#include03typedefstructBitree04{05intdata;06structBitree *Lchild,*Rchild;07}BitreeNode,*LinkBitree;0809typedefstructQueueList10{11LinkBitree data[20];12intfront,rear;13}QueueList,*LinkQueue;1415Li 阅读全文
posted @ 2013-11-29 20:02 天天向上... 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.4.1.htm哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。散列 阅读全文
posted @ 2013-11-29 09:13 天天向上... 阅读(359) 评论(0) 推荐(0) 编辑
摘要: C语言中static用法介绍 对于新手来说,很多东西的用法还不是很清楚,我们今天一起来看看C语言中static用法介绍 1、声明了static的变量称为静态变量,根据作用域的不同又分为静态局部变量与静态全局变量。其中静态局部变量是在函数内声明的static变量,静态全局变量是在函数外声明的static变量。虽然作用域不同,但是都是在编译期间分配内存,使用静态存储的方式(其值存放在静态存储区),在程序整个执行期间都是存在的。它们之间的区别是: a、静态局部变量的作用域仅限于其所在的函数,在函数外无法对该变量进行访问。此外,该变量的值在该函数退出时依然存在,并且下次调用该函数时使用的是上次保存的值 阅读全文
posted @ 2013-11-27 19:15 天天向上... 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.chinaunix.net/uid-16875687-id-2155676.html浮躁的人容易问:我到底该学什么;----别问,学就对了; 浮躁的人容易问:c有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。 1. 每天告诉自己一次,『我真的很不错』 2. 生气是拿别人做错的事来惩罚自己 3. 生活中若没有朋友,就像生活中没有阳光一样 4. 明天的希望,让我们忘了今天的痛苦 5. 生活若剥去了理想、梦想、幻想,那生命便只是一堆空架子 阅读全文
posted @ 2013-11-27 19:00 天天向上... 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.chinaunix.net/uid-16875687-id-2155683.htmlint (*a[])(int);int (*p())[10];第一种情况为数组里面是函数指针的情况,因为(int (*)(int))是一个强制转换方式, 将里面的a[]这个数组转换成了一个函数指针的数组, 并且该函数是一个带一个整型变量,并且返回一个整型的函数.第二种情况为函数返回的为指向一个一维数组的指针的情况. 因为(int (*)[10])将其强制转换成了一个指针,而该指针则是一个指向一维数组的指针.分别举两个例子进行说明:对于第一种函数指针数组的情况,如下:#includ 阅读全文
posted @ 2013-11-27 18:58 天天向上... 阅读(1235) 评论(0) 推荐(0) 编辑
摘要: 重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存器中,而就在这时被中断了,而中断函数或者另一个进程也调用fun函数,这时第二次调用的fun函数在执行的过程中就会破坏第一次FLOAT寄存器中的结果,这样当返回到第一次fun函数的时候,结果就不正确了。可以把fun函 阅读全文
posted @ 2013-11-27 17:20 天天向上... 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。用C++描述,题目大致是这样的:已知下面Stack类及其3个方法Push、Pop和Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。class Stack{…public:void Push(int x); / 阅读全文
posted @ 2013-11-27 17:04 天天向上... 阅读(231) 评论(0) 推荐(0) 编辑