
C
文章平均质量分 85
cemer815
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
<br /> <br />堆和栈的区别 <br /> <br />一、预备知识—程序的内存分配 <br />一个由C/C++编译的程序占用的内存分为以下几个部分 <br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 <br />操作方式类似于数据结构中的栈。 <br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 <br />收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 <br />3、全局区转载 2011-03-01 10:20:00 · 344 阅读 · 0 评论 -
函数指针和回调函数
函数指针和回调函数你不会每天都使用函数指针,但是,它们确有用武之地,两个最常见的用途是把函数指针作为参数传递给另一个函数以及用于转换表(jump table)。 【警告】简单声明一个函数指针并不意味着它马上就可以使用。和其它指针一样,对函数指针执行间接访问之前必须把它初始化为指向某个函数。下面的代码段说明了一种初始化函数指针的方法。 int f转载 2012-02-29 22:45:49 · 428 阅读 · 0 评论 -
指针数组和数组指针
指针数组和数组指针 这个问题大家应该都碰到过,指针数组和数组指针,刚开始看时觉得还是能看懂,但是过些时又搞混了,最后发现还是没有真正理解。下面就简单说说这两个概念: 一:指针数组,顾名思义,就是说的首先是一个数组吧,然后数组的元素是指针而已。 说明形式为:type *pointer_array[constant1][constant2]...[constantn转载 2012-03-06 21:42:10 · 530 阅读 · 0 评论 -
Source Insight3.5软件使用及配置
Source Insight Marco研究(语法篇)Source Insight Marco研究(语法篇)Source Insight宏语法与C相似,编写好的宏以.em文件存储。要使用宏先需要把.em文件加入到当前工程或是Base工程中,然后为其分配一个快捷键或是菜单项,之后就可以使用键盘或是点击菜单来调用宏。si的宏语法“不是”大小写敏感的,且每行语句不强制要求以分转载 2012-03-09 22:25:53 · 20853 阅读 · 0 评论 -
函数调用规范
当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或者函转载 2012-03-11 23:04:22 · 518 阅读 · 0 评论 -
关于字符集
引问一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF FE(Unicode), FE FF(Unicode转载 2012-03-11 23:17:24 · 1416 阅读 · 0 评论 -
声明函数指针并实现回调
程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针 回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法转载 2012-03-11 21:25:15 · 551 阅读 · 0 评论 -
怎么理解回调函数,为什么要使用回调函数
你饿了,想吃饭,就一会去问你妈一声"开饭没有啊?"这就正常函数调用.但是今天你妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你给你妈说,我先出去玩会,开饭的时候打我手机.等过了一阵,你妈给你打电话说"开饭啦,快回来吃饭吧!"其中,你告诉你妈打手机找你,就是个你把回调函数句柄保存到你妈的动作.你妈打电话叫你,就是个回调过程.转载 2012-03-11 21:37:05 · 1334 阅读 · 0 评论 -
关于字符集
GB2312 字符集 GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施,是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆和新加坡获广泛使用。 GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文转载 2012-03-11 23:17:59 · 1010 阅读 · 0 评论 -
透析回调函数
“先泛后精,先浅后深”的道理可是知易行难,所以常常会给技术上的小细节纠缠着,搞得晕晕乎,其中“回调函数”就是其中之一了,虽然回用,但是老是不明白其中的含义,众多的书本也说得隐晦不清。直到不久前看到一篇文章才总算比较清晰了解,。 概括起来,回调机制包括两部分:服务执行者和服务方式制定者。 1. 服务执行者先制定服务规范; 2.服转载 2012-02-11 21:27:17 · 397 阅读 · 0 评论 -
assert用法总结
assert用法总结assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。转载 2011-12-11 15:34:57 · 490 阅读 · 0 评论 -
WindSh内置命令
WindSh内置命令分类: 调试2011-07-07 23:13 14人阅读 评论(0) 收藏 举报 WindSh内置命令 3.1.4.1 任务管理 sp( ) 用缺省参数创建一个任务(priority=100 返回值为任务ID,或错误)(taskSpawn)sps( ) 创建一个任务,并挂起它转载 2011-10-24 21:25:58 · 1240 阅读 · 0 评论 -
C语言运算符优先级 详细列表
<br /><br />优先级<br />运算符<br />名称或含义<br />使用形式<br />结合方向<br />说明<br />1<br />[]<br />数组下标<br />数组名[常量表达式]<br />左到右 <br />()<br />圆括号<br />(表达式)/函数名(形参表) <br />.<br />成员选择(对象)<br />对象.成员名 <br />-><br />成员选择(指针)<br />对象指针->成员名 <br />2<br />-<br />负号运算符<br />-原创 2011-03-17 21:58:00 · 427 阅读 · 0 评论 -
WINDOWS 字节对齐,很详细
<br /><br />VC字节对齐全攻略<br />VC中下面几个结构体大小分别是多少呢<br />struct MyStruct<br />{<br /> double m4;<br /> char m1;<br /> int m3;<br />};<br />struct MyStruct {<br /> char m1;<br /> double m4;<br /> int m3;<br />};<br />#pragma pack(push)//保存对齐状态<转载 2011-05-25 16:13:00 · 2225 阅读 · 0 评论 -
文件间调用变量(extern,include)
首先要搞清楚的是.h头文件中都是一些声明性的语句,干的是不分配内存的事,所以头文件中有对函数的声明,有defeinse语句,有没有实例化的结构体定义,但是没有对变量的定义(比如 int a),有的只是对外变量的声明(extern int a)。 对于一个文件中调用另一个转载 2011-10-16 23:49:20 · 1310 阅读 · 0 评论 -
为什么要用到extern 声明 include所包含的程序中的函数?
为什么要用到extern 声明 include所包含的程序中的函数?在头文件中声明函数时,前面的extern可有可无,只要这些函数曾在某个.c文件中实现就行了,不过一些函数没有在所包含的头文件中给出声明,同时函数的定义位于其它文件中,这时候使用该函数的.c文件必须用extern标记该函数为外部函数。举个例子:/* c.h */extern int m转载 2011-10-16 23:58:16 · 1879 阅读 · 1 评论 -
一个c回调函数的例子
#include// 方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)typedef int (*CallBackFun)(char *p); // 为回调函数命名,类型命名为 CallBackFun,参数为char *pint Afun(char *p) { // 方法 Afun,格式符合 CallBackFun 的格式,因此可以看作是转载 2011-10-24 22:53:26 · 565 阅读 · 0 评论 -
代码静态分析工具PC-LINT安装配置--step by step
PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验转载 2011-10-23 15:48:29 · 668 阅读 · 0 评论 -
探讨C语言中的回调函数
回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给 调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不 同的内容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别写了不同 的显示函数:void TVshow(); void ComputerShow(); void NoteBookShow()...等 等。这是我们想用一个统一的显示函数,我转载 2011-10-23 13:45:15 · 608 阅读 · 0 评论 -
C语言获取系统时间的几种方式
C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒转载 2012-06-17 23:40:08 · 756 阅读 · 0 评论