上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 源地址:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html补充:http://baike.baidu.com/link?url=oJ8Gy8pRAGrXPP-mXSvdTLwKFqdUc3T4uvz3Yy63upN6D07qFv97Wny1I_EV4pYfSwVKnpr73xowghsrg-1p-qLinux环境下段错误的产生原因及调试方法小结最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Se 阅读全文
posted @ 2013-11-27 15:43 天天向上... 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指令流水线,常见的是重新排序读写指令。对常 阅读全文
posted @ 2013-11-27 15:37 天天向上... 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.csdn.net/freefalcon/article/details/1423371所谓字节对齐问题,是指在内存中一个基本数值类型变量应该位于其sizeof大小的整数倍边界上,换句话说,就是一个基本数值类型变量的地址能够被其sizeof大小所整除。比如,对于short类型,其地址应该能够2整除,而对于double类型,则要求能被8整除。这样做是由CPU运算时获取值的特性决定的,现在,大多数CPU都能处理字节不对齐的问题,但对于一些嵌入式CPU,我们仍需加以重视,不然将导致程序出现异常,而且,从效率角度来讲,我们也应该避免字节不对齐的情况出现。下面是一个将任意地 阅读全文
posted @ 2013-11-27 15:35 天天向上... 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.csdn.net/freefalcon/article/details/548390. 前向声明sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各位扔砖砸蛋。1. 定义sizeof是何方神圣?sizeof乃C/C++中的一个操作符(op 阅读全文
posted @ 2013-11-27 15:34 天天向上... 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://www.cnblogs.com/chengxin1982/archive/2009/01/13/1374575.htmlsizeof()用法汇总sizeof()功能:计算数据空间的字节数1.与strlen()比较strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。注意:int *p; sizeof(p)=4; 但 阅读全文
posted @ 2013-11-27 15:31 天天向上... 阅读(336) 评论(0) 推荐(0) 编辑
摘要: //________________________________//用地址传递的方式来实现两个数的交换//________________________________#include void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; }void main() { int val1 = 10, val2 = 20; cout void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; }void main() { i 阅读全文
posted @ 2013-11-21 19:04 天天向上... 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 研一时,很偶然的翻开谭浩强老先生的《C程序设计》(是师姐的书,俺的老早就卖了,估计当时觉得这本书写得不够好),很偶然的看到关于变量名的一段话:“变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。”当时很震惊上课的时候居然没有发现这句蛮有深意的话语,可是研一的时候还是没有完全明白,只是知道有这么几个东西:变量名、内存地址、变量值。后来看到指针的地方,说到了“符号表”的这个东东,就更头大了。符号表到底是个什么样子?那个变量名到底放在内存的什么地方?最近在写驱动,面对的是一个芯片手册 阅读全文
posted @ 2013-11-21 19:02 天天向上... 阅读(2242) 评论(0) 推荐(0) 编辑
摘要: 一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。 下面以函数返回局部变量的指针举几个典型的例子来说明:1:[cpp]view plaincopy#includechar*returnStr(){char* 阅读全文
posted @ 2013-11-21 19:01 天天向上... 阅读(4750) 评论(2) 推荐(2) 编辑
摘要: 首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5......房间里面一定要住人,新人住进去了,原来的人就走了;不管你住不住,里面都有人、编号就是地址、里面的人就是内容,为了我们(人)记着方便,我们给他们起些名字,如张三、李四、于是,变量,就是一个房间,它有编号(地址),他有名字(变量名),他有内容(里面的人)、inta=3;//a是名字,3是内容,地址可以假设是0x12345678(通常就是32位地址)、//0x12345678这个房间里面住的是一个int,所谓指针变量,就是一个房间,他里面的内容,可以放个地址;如int*pi=&a;//pi是名字,内容就是a的地址 阅读全文
posted @ 2013-11-21 18:31 天天向上... 阅读(3448) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/ljx0305/article/details/4352481http://www.cnblogs.com/fhefh/archive/2011/10/28/2228241.htmlhttp://www.cnblogs.com/heart-runner/archive/2011/12/18/2292070.html 阅读全文
posted @ 2013-11-20 12:58 天天向上... 阅读(119) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页