- 博客(13)
- 资源 (2)
- 收藏
- 关注
转载 argv[argc]
argv[argc] 一定是 NULL如果你这里的 argv 是 main 的参数哪里越界了?本来就规定 argv 是一个长度为 (argc+1) 的数组,最后一项是 NULL
2009-08-21 15:52:00 345
转载 使用Lex和Yacc开发C语言的编译器
(1) 从网站:http://www.lysator.liu.se/c/ 下载C语言的语法文件:The ANSI C grammar (Yacc and Lex) (2) 编译词法文件: > lex c.l(3) 编译语法文件:> yacc -dv c.y说明:-d:产生头文件y.yab.h,-v:产生分析表y.output。针对else产生的移进规约冲突,采用了yacc的默认动作“移进”解决。
2009-08-19 21:44:00 1360
转载 c下创建临时文件mkstemp函数
int mkstemp(char *template); mkstemp函数在系统中以唯一的文件名创建一个文件并打开,而且只有当前用户才能访问这个临时文件,并进行读、写操作。 mkstemp函数只有一个参数,这个参数是个以“XXXXXX”结尾的非空字符串。mkstemp函数会用随机产生的字符串替换“XXXXXX”,保证 了文件名的唯一性。 函数返回一个文件描述符,如
2009-08-18 22:00:00 869
原创 我的.vimrc文件
" An example for a vimrc file."" Maintainer: Bram Moolenaar " Last change: 2008 Jul 02"" To use it, copy it to" for Unix and OS/2: ~/.vimrc" for Amiga: s:.vimrc"
2009-08-17 15:39:00 513
原创 私有构造函数
class A { public: static A a; private: A();};//.cppA A::a;A::(){...}构造函数都私有了,为什么还能声明类对象a? 还有一直没明白,构造函数私有有啥用?仅仅为了防止建立类的实例?纯虚函数也可以啊。 发信人: goer (微笑的夏诺雅), 信区: CPlusPlus标 题
2009-08-12 10:50:00 2267
原创 N 皇后的递归解法
#include #include #include #define QUEENS 8 //!记录解的序号的全局变量。 int iCount = 0; //!记录皇后在各列上的放置位置的全局数组。 int Site[QUEENS];
2009-08-10 20:16:00 531 3
原创 判断一个文件尾的空行
咋判断一个文件尾的空行? int empty_liens = 0;while (读一行) if (空行) ++empty_lines; else empty_lines = 0;
2009-08-10 19:17:00 516
转载 文件复制
使用C++标准程序库的输入输出流(I/O Stream)复制文件,存在许多的方法, 方法一:逐个字符复制 #include std::ifstream input("in",ios::binary); std::ofstream output("out",ios::binary);
2009-08-10 10:55:00 339
原创 定义一个可指向类的非static但是const的函数的函数指针
//例class A{public: int func(int x) const; int example();};int A::example(){ int (*p)(int x); p = func; //error does not match return 0;}//请问该如何定义一个p才能指向func呢? 发信人: dp2 (
2009-08-09 21:52:00 338
原创 模板推演(deduce)
模板函数定义template D func(const T& src){ ...}在使用时func(src)就可以通过编译了,为什么只要一个模板参数就可以了?第二个模板参数被默认成什么了?模板函数编译器在实例化的时候会进行deduce,但只能是对入参列表的参数类型进行deduce,对返回值的类型则deduce不了对于推演不了的参数则需要
2009-08-08 10:47:00 519
原创 删除C++代码注释的脚本
#!/bin/sh -ffunction del_comment_file(){ #C++模式注释的删除。 #Delete the line begins with // #首先删除//在行首的行 sed -i /^[ /t]*/////d $file #Delete the line ends with // #注意已经除去了 //在行首的情况,下面匹配除去URL的//部分,因为代码中有一
2009-08-08 00:34:00 1151
原创 写一个好函数,功能:求C风格字符串长度;要求:不调用其他函数,不使用变量
int len(char * p){ if( *p == 0 ) return 0; return len(p+1) + 1;} templateint StrLen(const char (&array)[N]){ return N;}int main(){ int val = StrLen("hello world"); cout
2009-08-06 01:08:00 622
原创 copy and swap
effective c++里的 ,处理operator =的自我赋值class Widget{ void swap(Widget& rhs);//交换rhs和*this的数据 Widget& operator =(const Widget& rhs) { Widget temp(rhs); swap(
2009-08-06 00:46:00 809
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人