- 博客(7)
- 资源 (12)
- 收藏
- 关注
原创 更新文件顺序
许多系统中的标准输入/输出允许程序打开一个文件,同时进行写入和读出的操作 FILE *fp; fp=fopen(file,"rt"); 打开文件名由变量file制定的文件,对于存取权限的设定表明程序希望对这个文件进行输出和输入操作 可能认为一旦执行上述操作完毕,就可以自由的交错进行读出和写入操作,事实上,一个输入操作不能随后直接跟一个输出操作,反之亦然,如果要同时输入和输出操作 ,必
2007-05-31 12:47:00 1061
原创 命名冲突和static修饰符
两个具有相同名称的外部对象实际代表的是同一个对象(即使用户并非本意) static修饰符是一个能够减少此类命名冲突的工具,例如: static int a;其含义与int a;相同,只不过a的作用于被限制在一个源文件内,而对于其他源文件,a是不可见的,如若干个函数需要共享一组外部对象,可以将这些函数放到一个源文件中,把他们需要用到的对象也都放在一个源文件中以static修饰,当然,st
2007-05-30 20:14:00 1077
原创 setjmp longjmp
在C专家编程里面可有提到setjmp和longjmpsetjmp(),longjmp()是通过操纵过程活动记录实现的。* setjmp(jmp_buf j)必须首先被调用,表示“使用变量j记录的位置,函数返回零”* longjmp(jmp_buf j,int i)可以接着被调用,表示“回到j所记录的位置 ,让它看上去像从原先的setjmp()函数返回一样,返回i,使代码能够知道它实际上是通过l
2007-05-28 13:21:00 1230
原创 读书笔记--异常处理(1)
C++的异常处理中,需要有问题检测部分抛出一个对象给处理代码:通过这个对象的类型和内容,两个部分能够就处了什么错误而进行通信。Sales_item operator+(const Sales_item &lhs,const Sales_item &rhs){ if( !lhs.same_isbn(rhs) ){ throw runtime_error("Dat
2007-05-27 19:54:00 914
原创 读书笔记--模版(4)
模板特化:templateint Compare(const T&v1,const T &v2){ if( v1 { return -1; } if( v2 { return 1; } return 0;}如果用两个const char *实参调用这个模板定义,函数将比较指针值,结果使指针在内存中的相对位置templateint Compare(const char * const &
2007-05-20 19:09:00 1259
原创 读书笔记--模板(3)
成员模板:成员模板不能为虚templateclass Queue{ public: template Queue(It beg,It end):head(0),tail(0) { Copy_elem(beg,end); } template void assign(Iter,Iter); private: template void Copy_elem(I
2007-05-13 12:29:00 998
原创 读书笔记--模板(2)
模板的编译模型: 应该将类定义和函数声明放在头文件中,而普通函数和类成员函数的定义放在源文件中。要进行模板的实例化,便一起必须能访问定义模板的源代码。 1、包含编译模型//utlities.h#ifndef UTLITIES_H#define UTLITIES_Htemplate int compare(const T&,const T&);#include "utilites.c"#en
2007-05-07 20:01:00 1197
MemoryPool
2010-08-21
Windows IOCP框架
2010-08-17
RRDTOOL_For_Windows
2009-04-14
基于MFC的Mib文件解析
2009-03-21
TaskManager
2009-02-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人