随笔分类 -  C/C++

摘要:如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这称为回调函数(Callback Function)。例如qsort(3)和bsearch(3)。回调函数示例:void func(void (*f)(void *), void *p);调用者实现者提供一个回调函数,再提供一个准备传给回调函数的参数。把回调函数传给参数f,把准备传给回调函数的参数按void *类型传给参数p在适当的时候根据调用者传来的函数指针f调用回调函数,将调用者传来的参数p转交给回调函数,即调用f(p);以下是一个简单的例子。实现了一个repeat_three_times函数,可以把调用者传来 阅读全文
posted @ 2012-04-22 22:14 Andy_YF 阅读(250) 评论(0) 推荐(0)
摘要:一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指令流水线,常见的是重新排序读写指令。对常规内存进行优化的时候,这些优化是透明的,而且效率很好。由编译器优化或者硬件重新排序引起的问题的解决办法是在从硬件(或 阅读全文
posted @ 2012-04-22 22:10 Andy_YF 阅读(205) 评论(0) 推荐(0)
摘要:1、strcpy()原型:extern char *strcpy(char*dest,char *src); 用法:#include <string.h>功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。2、memset()memset原型:extern void *m 阅读全文
posted @ 2011-12-25 16:05 Andy_YF 阅读(420) 评论(0) 推荐(0)
摘要:文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要把数据存入外部介质中,如果没有该文件,则先要建立文件,再向它输入数据。由于文件的内容千变万化,大小各不相同,为了统一处理,在C++中用文件流的形式来处理,文件流是以外存文件为输入输出对象的数据流。输出文件流表示从内存流向外存文件的数据,输入文件流则相反。根据文件中数据的组织形式,文件可分为两类:文本文件和二进制文件。文本文件又称为ASCII文件,它的每个字节存放一个ASCII码,代表一个字符。二进制文件则是把内存中的. 阅读全文
posted @ 2011-12-25 15:30 Andy_YF 阅读(217) 评论(0) 推荐(0)
摘要:1、exit函数报异常:incompatible implicit declaration of build-in function 'exit' 把stdlib.h头文件包含进来既可以解决.2、 阅读全文
posted @ 2011-12-23 13:02 Andy_YF 阅读(159) 评论(0) 推荐(0)
摘要:TheHistoryofGCC1984年,RichardStallman发起了自由软件运动,GNU(Gnu'sNotUnix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSIC的开源C编译器。GCC最初的全名是GNUCCompiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNUCompilerCollection。这里介绍的gcc是GCC的前端,C编译器.警告信息-Wall:显示所有常用的编译警告信息。-W:显示更多的常用编译警告,如:变量未使用、一些逻辑错误。-Wconversion:警告隐式类型转换。-Wshadow:警告影子变量( 阅读全文
posted @ 2011-12-23 09:41 Andy_YF 阅读(272) 评论(0) 推荐(0)
摘要:1. 什么是正则表达式基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用<<regex>>来表示一段具体的正则表达式。一段文本就是最基本的模式,简单的匹配相同的文本。2. 不同的正则表达式引擎正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一部分。在软件世界,不同的正则表达式并不互相兼容。本教程会集中讨论Perl 5 类型的引擎,因为这种引擎是应用最广泛的引擎。同时我们也会提到一些和其他引擎的区别。许多近代的引擎都很类似,但不完全一样。例如.NET正则库,JDK正则包。3. 文字符号最基 阅读全文
posted @ 2011-12-22 16:18 Andy_YF 阅读(705) 评论(0) 推荐(0)