c/c++
zhangcoldwater
这个作者很懒,什么都没留下…
展开
-
关于c++中 copy constructor
今天才知道,原来copy constructor 的实现竟然可以使用memcpy()或者memset()来实现,类似于memcpy(this,&rhs,sizeof(the_other_object_of_the_same_class))其实从理论上来说,也解释得通。毕竟copy constructor的作用就是把内存的某一块的内容拷贝到另一块。 虽然这个拷贝的效率很高,原创 2010-04-11 11:12:00 · 998 阅读 · 0 评论 -
ubuntu c++ 头文件被删除后如何恢复
昨晚一时激动,将/usr/include/c++下的文件删了。ls的时候是显示有两个文件夹,一个是4.6,一个是4.6.3然后将4.6删掉了。删除以后ll了一下,发现4.6.3是4.6的一个软链接;于是悲剧了。。。#include都报错。解决方法:sudo apt-get remove g++-4.6;将原来的都移除,因为在/usr/bin下还有g++-4.6*原创 2013-03-16 15:03:43 · 1585 阅读 · 0 评论 -
C++ redis client安装全过程
1.下载:C++版本的redis client下载链接:https://github.com/mrpi/redis-cplusplus-client2.首先需要安装boost库,在linux下安装boost库过程如下: 2.1 boost库下载到官网:http://www.boost.org/,当前最新版本为1.51.0 2.2 安装命令: 官网介绍:ht原创 2012-09-01 10:19:20 · 2603 阅读 · 1 评论 -
C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free(转)
内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。 [3] 从堆上分配,亦称动态内存分配 。程序在运行的时候用 malloc 或 new 申请任意多少的内存,程序员自己负责在何时用 free 或 del转载 2011-01-18 10:28:00 · 469 阅读 · 0 评论 -
vs2005下部分断点无效的问题
<br /> 这两天在vs2005下的一个project中进行debug,但是出现了一个比较奇怪的现象,绝大多数文件都可以设置断点并且可以跟进去,唯独有一个修改量比较大的.cpp文件,前几次还可以设置断点并且跟进去,后来在那个设置的任何断点都无缘无故失效了。<br /> <br /> 把整个project重新build了好几次,包括需要调用的一些第三方的.dll文件都重新生成重新link,都无法解决问题。就算强行进入这个文件,都会显示该文件与源文件不同,问是否继续。简直郁闷坏了。<br /原创 2011-01-10 19:01:00 · 865 阅读 · 0 评论 -
C语言版的磁盘文件分片归并排序函数(转)
这是一个很老的的C函数,用来实现大的磁盘文件排序。在以前DOS操作系统下,对磁盘文件的排序一般有3种方法:1、将磁盘文件装入内存排序,将排序结果保存到新的文件,这适用于很小的(64K以内)、不需要经常索引的文件;2、对磁盘文件按关键字进行分块排序后,形成一个索引文件。块的大小一般为512K,常采用B+树或者B-数算法,这种方法适用于需要经常索引的磁盘文件,如DBF文件;3、把磁盘文件分转载 2010-04-28 09:50:00 · 705 阅读 · 0 评论 -
如何查看cl编译器生成的汇编代码
显然,直接在vs2005的Disassembly窗口中查看是不方便的。其实,cl.exe提供了一个/FAs的编译选项,而添加这一选项最简单的办法为:首先找到“项目属性->Configuration Properties->C/C++->Command Line->Addtional options”,然后在其中添入"/FAs",然后F5编译,继而在源程序的同一目录下,便可找到对应的转载 2010-04-22 19:42:00 · 3931 阅读 · 0 评论 -
c++类的初始化函数中的bug
c++类中构造函数的作用,简言之,就是给一些变量设定一个初值。然后初始值可以在构造函数中设定,也可以在初始化列表中设定。 在初始化列表中设定初值的话,存在一个非常隐蔽的bug。因为初始化列表的执行顺序是和data member的声明顺序一样的,bug也就是出在这。 看下面这个类:class X{public:X(int val):y(va原创 2010-04-11 21:21:00 · 521 阅读 · 0 评论 -
ctags使用详解
ctags使用详解-【OK】一. ctags 是干什么的ctags 的功能:扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。我用的是 Exuberant Ctags ,在 Windows 上使用,就一个可执行文件,非常绿色,可在 sourceforge 下载。二. ctags 可以识别哪些语言,是如何识别的ctags 识别很多语言,可转载 2013-11-27 21:50:04 · 585 阅读 · 0 评论