C/C++
文章平均质量分 70
Yanfei90
这个作者很懒,什么都没留下…
展开
-
assert()函数的使用说明
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c: #原创 2011-12-17 22:23:32 · 624 阅读 · 0 评论 -
template详解
Table of ContentsIntroductionClass TemplatesImplementing a class templateImplementing class template membersUsing a class templateFunction TemplatesImplementing Template Functions转载 2011-12-14 11:20:45 · 2607 阅读 · 0 评论 -
C/C++常见问题( 不断更新)
1、exit函数报异常:incompatible implicit declaration of build-in function 'exit' 把stdlib.h头文件包含进来既可以解决.2、原创 2011-12-23 13:02:17 · 574 阅读 · 0 评论 -
strcpy、memset、memmove、memcpy和memccpy函数的使用
1、strcpy()原型:extern char *strcpy(char*dest,char *src); 用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。例:chara[100],b[50];strcpy(a,b);原创 2011-12-25 16:05:36 · 2734 阅读 · 0 评论 -
C/C++使用rand()和srand()函数产生随机数
C/C++使用rand()和srand()函数产生随机数:(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#include#includevoid main(){ for(int转载 2011-12-16 09:44:30 · 1447 阅读 · 0 评论 -
C++之文件IO操作流
文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要把数据存入外部介质中,如果没有该文件,则先要建立文件,再向它输入数据。由于文件的内容千变万化,大小各不相同,为了统一处理,在C++中用文件流的形式来处理,文件流是以外存文件为输入输出对象的数据流。输出文件流表示从内存流向外转载 2011-12-25 15:30:17 · 882 阅读 · 0 评论 -
正则表达式详解
1. 什么是正则表达式基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用>来表示一段具体的正则表达式。一段文本就是最基本的模式,简单的匹配相同的文本。 2. 不同的正则表达式引擎正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一部分。在软件世界,不同的正则表达式并不互相兼容。转载 2011-12-22 16:18:37 · 3229 阅读 · 0 评论 -
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的转载 2012-04-22 22:10:53 · 580 阅读 · 0 评论 -
回调函数
如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这称为回调函数(Callback Function)。例如qsort(3)和bsearch(3)。回调函数示例:void func(void (*f)(void *), void *p);调用者实现者提供一个回调函数,再提供一个准备传给回调函数的参转载 2012-04-22 22:14:51 · 540 阅读 · 0 评论 -
setlocale的使用
setlocalechar * setlocale ( int category, const char * locale );Set or retrieve localeSets locale information to be used by the current program, either changing the entire locale or pa翻译 2011-12-14 11:15:55 · 739 阅读 · 0 评论 -
C文件读写操作
当文件按指定的工作方式打开以后,就可以执行对文件的读和写。下面按文件的性质分类进行操作。针对文本文件和二进制文件的 不同性质,对文本文件来说,可按字符读写或按字符串读写;对二进制文件来说,可进行成块的读写或格式化的读写。1. 读写字符C提供fgetc和fputc函数对文本文件进行字符的读写,其函数的原型存于stdio.h头文件中,格式为: int fgetc(FILE *strea转载 2011-12-17 17:35:52 · 3475 阅读 · 1 评论 -
gcc使用简介
The History of GCC1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSI C的开源C编译器。GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection。转载 2011-12-23 09:41:55 · 841 阅读 · 0 评论 -
C语言中return与 exit的区别
C语言中的return, exit, break, continue。前两个函数使用的同时通常都会带上程序退出时的状态码,标准C中有EXIT_SUCCESS和EXIT_FAILURE两个宏,位于/usr/include/stdlib.h中。是这样定义的的:#define EXIT_FAILURE 1#define EXIT_SUCCESS 0一. exit函数的作用及其与_e原创 2011-12-17 21:45:17 · 828 阅读 · 0 评论 -
va_list、va_start、va_end的使用
1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...);2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:先介绍一下可变参数表的调用形式以及原理:首先是参数的内存存放格式:参数存放在内存的堆栈段中,在执行函数的时候,从最后一个开始入栈。因此栈底高地址,栈顶低地转载 2011-12-09 15:25:04 · 513 阅读 · 0 评论 -
virtual destructor的使用
virtual方法(virtual function):If a method is virtual, then calling the method on an object always invokes the method as implemented by the most heavily derived class. If the method is not virtual, the翻译 2011-12-12 09:18:05 · 2447 阅读 · 0 评论 -
C语言中Malloc的使用
malloc函数:原型:extern void *malloc(unsigned int num_bytes);用法:#include 功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。举例:// malloc.c#include >转载 2011-12-11 09:14:19 · 14834 阅读 · 0 评论 -
带参数的main函数
main函数的参数:int argc,char *argv agrc表示参数的个数 argv储存参数 main函数可以带参数。带参数main函数的定义格式如下:void main(int argc, char *argv[]){... ...} argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函转载 2011-12-11 09:18:45 · 806 阅读 · 0 评论 -
gcc报的几个错误和其解决方法
1、'for' loop initial declaration used outside C99 mode解决:因为在for 循环的初始化部分声明了变量.(C89和C94不支持for循环变量i在循环内定义,导致编译错误.) 建议不要想什么办法去解决这问题.不要在for()的小括号中定义.这样利于代码阅读.2、warning: useless storage class s转载 2011-12-11 09:23:56 · 6546 阅读 · 0 评论 -
C++中friend的使用(friend function and friend class)
对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。Friend Classes(友元类)C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够直接访问该类中的翻译 2011-12-12 09:10:44 · 23781 阅读 · 4 评论 -
explicit在C++中的应用
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编转载 2011-12-13 09:44:15 · 460 阅读 · 0 评论 -
assert在C++中的应用
void assert (int expression);Evaluate assertionIf the argument expression of this macro with functional form compares equal to zero (i.e., the expression is false), a message is written to the s翻译 2011-12-13 09:49:27 · 587 阅读 · 0 评论