Fork me on GitHub
  2013年12月21日
摘要: 如果构造函数内发生异常,已经分配的资源是不会自动释放的,比如class B{public: B(){ printf("into B constructor\n"); } ~B(){ printf("into B destructor\n"); }};class C{public: C(){ printf("into C constructor\n"); throw std::runtime_error(" exception from C constructor"); } ~C()... 阅读全文
posted @ 2013-12-21 22:57 coderkian 阅读(1194) 评论(0) 推荐(0) 编辑
  2013年12月20日
摘要: 我们知道c语言中的类型转换只有一种,TYPE b = (TYPE)a;而在c++中按照不同作用的转换类型将其细分为三个显示类型转换符号static_cast, const_cast, reinterpret_cast,这种显示转换可以提供更丰富的含义和功能,更好的类型检查机制,方便代码的维护。1.static_cast主要用于相关类型之间的转换,如c的基本数据类型char,int,double等之间,以及基类和子类之间转换(没有dynamic_cast安全),可能会有字节转换,不可以转换不相关类型如int*和double*,以及没有继承关系的类指针void*与其他类型指针之间的转换double 阅读全文
posted @ 2013-12-20 22:41 coderkian 阅读(4631) 评论(0) 推荐(0) 编辑
  2013年12月18日
摘要: 今天写了个层次化的Makefile模版,用来自动化编译项目,这个模版应当包含以下功能:适用于层次化结构,Makefile主要内容都放在顶层目录下的Makefile.env中,子层Makefile包含这个Makefile.env,只要增加一些变量就可以编译,特别方便添加新的功能模块自动解析头文件依赖我... 阅读全文
posted @ 2013-12-18 00:43 coderkian 阅读(5164) 评论(2) 推荐(1) 编辑
  2013年12月3日
摘要: __attribute__机制是GNU C的一大特色,可以用来设置函数,变量和数据类型的属性,下面对工作中正好用到的两个属性做下简单介绍。1. constructor 这个属性指定函数在main函数执行之前执行static void RunBeforeMain(void) __attribute__ ((constructor));void RunBeforeMain(void){ printf(“%s \n”, __FUNCTION__);}int main(void){ printf(“%s\n”,__FUNCTION__); return 0;}输出顺序如下:Runb... 阅读全文
posted @ 2013-12-03 00:06 coderkian 阅读(457) 评论(2) 推荐(0) 编辑
  2013年11月27日
摘要: 自己也用vim很多年了,今天有空总结了下平常经常使用的命令,共享之。1. 打开保存文件:e 打开文件:saveas 另存为:ZZ 等于:wq 保存退出:bn 切换到下一个打开的文件:bp 切换到上一个打开的文件:! 执行shell命令2. 进入输入模式i 从光标当前位置开始输... 阅读全文
posted @ 2013-11-27 20:26 coderkian 阅读(568) 评论(3) 推荐(1) 编辑
  2013年11月8日
摘要: 一、启动gdb1. gdb , program是执行文件路径2. gdb , gdb调试core文件,查找程序出错位置。如果程序中断没有产生core文件,ulimit –a可以查看到系统设置的core文件大小是0,用ulimit -c unlimited将core文件大小设为无限制即刻。3. gdb , 对于多进程程序,指定进程id二、gdb命令· file, 装载想要调试的程序· set args, 如果不想通过r [args]执行的话,可以先set args再r· watch,设置观察点监视变量值,在变量值改变处停止· rwatch,观察点被读时停止 阅读全文
posted @ 2013-11-08 22:12 coderkian 阅读(284) 评论(0) 推荐(1) 编辑
摘要: GCC 全称是 GNU C Compiler,是gnu中最流行的c & c++编译器,下面我们看一下一些主要的参数使用方法。对于一个源文件可以直接生成可执行文件gcc test.c默认生成a.out, -o指定生成的文件名gcc test.c -o test实质上,上述编译过程是分为四个阶段进行的,包括预处理(Preprocessing)、编译(Compilation)、汇编 (Assembly)和链接(Linking)。1.编译过程1.1预处理gcc -E test.c -o test.i-E指定gcc预处理结束就停下来,主要完成包含头文件、去除注释、替换宏等工作1.2编译gcc - 阅读全文
posted @ 2013-11-08 22:03 coderkian 阅读(735) 评论(0) 推荐(2) 编辑
  2013年11月5日
摘要: 问题描述:给定已知序列A1A2…An,求出其所有排列组合一、递归算法基本思路:1. 如果n等于1,输出当前序列2. 否则依次交换Ai(i=1,2..n-1,n)和An3. 对于前n-1长度序列,重复1、2两步算法复杂度O(n!),算法缺点:如果序列中有重复字符,会出现相同排列组合。递归算法效率低。算法优点:可以应用于所有字符串序列二、非递归算法基本思路:1. 假设字符都是可比较的,每种排列组合之间都可以比较大小,A1A2…An的最小排列是P1P2…Pn(P1,p2..pn是非严格递增的)。2. 从P1P2…Pn开始找出刚好比当前排列大的排列。3. 循环第2步,直到得到最大的排列Pn…P2p1, 阅读全文
posted @ 2013-11-05 23:21 coderkian 阅读(2307) 评论(0) 推荐(0) 编辑


作者:coderkian
出处:http://www.cnblogs.com/coderkian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。