摘要: C语言中static用法介绍 对于新手来说,很多东西的用法还不是很清楚,我们今天一起来看看C语言中static用法介绍 1、声明了static的变量称为静态变量,根据作用域的不同又分为静态局部变量与静态全局变量。其中静态局部变量是在函数内声明的static变量,静态全局变量是在函数外声明的static变量。虽然作用域不同,但是都是在编译期间分配内存,使用静态存储的方式(其值存放在静态存储区),在程序整个执行期间都是存在的。它们之间的区别是: a、静态局部变量的作用域仅限于其所在的函数,在函数外无法对该变量进行访问。此外,该变量的值在该函数退出时依然存在,并且下次调用该函数时使用的是上次保存的值 阅读全文
posted @ 2013-11-27 19:15 天天向上... 阅读(469) 评论(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) 编辑
摘要: 源地址: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) 编辑