C++
zqlovlg
这个作者很懒,什么都没留下…
展开
-
static_cast dynamic_cast reinterpret_cast const_cast 的区别和使用方法
static_cast:类似于C的普通强制类型转换,所以使用起来危险一点。 dynamic_cast:属于指针转换、较为安全的转换,用于类层次间的上行转换和下行转换,也用于类之间的交叉转换,上行转换时,和static_cast是一样的,下行转换时,本类型具有类型检查功能,比static_cast更安全。reinterpret_cast:用于进行没有任何关联之间的转换,比如一个字符指针转原创 2012-09-10 13:41:03 · 518 阅读 · 0 评论 -
C++ 模板函数 模板类
C++提供了函数模板(function template)?所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表?这个通用函数就称为函数模板。template //模板声明,其中T为类型参数T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名{ if(b>a) a=b; if(c>a) a=c; ret原创 2012-09-10 13:21:55 · 710 阅读 · 0 评论 -
gdb 简明教程
1、编译源文件 编译选项注意:加入-g选项,比如:gcc/g++-g test.cpp -o test2、进入gdb调试shell中:Linux下,gdb test (test为可执行文件文件名)Windows下,gdb test.exe(test为可执行文件文件名)3、命令行调试程序gdb最常用的几个命令:l/list:列出源代码,按回车键继续显示源代码;原创 2012-09-18 16:06:53 · 651 阅读 · 0 评论 -
string中c_str()、data()、copy(p,n)函数的用法
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。注意。转载 2012-09-23 00:22:25 · 946 阅读 · 0 评论 -
int与long区别
数据模型决定了C语言中基本数据类型与数据宽度的对应关系。我们常用的32位模型称为ILP32,而64位模型有三种:LP64、LLP64和ILP64。在64位模型中,指针一定是64位的,但是int和long的宽度则在不同的数据类型中有不同的定义。如下表:datatypeLP32ILP32LLP64LP64ILP64转载 2013-07-03 01:21:39 · 1410 阅读 · 0 评论 -
C标准预定义宏 -- 需要整理一下
ANSI C标准中有几个标准预定义宏:__FILE__ __DATE__ __TIME___ __LINE__ 等__LINE__:在源代码中插入当前源代码行号;__FILE__:在源文件中插入当前源文件名;__DATE__:在源文件中插入当前的编译日期__TIME__:在源文件中插入当前编译时间;__STDC__:当要求程序严格遵循ANSI C标准时该标转载 2014-04-13 14:59:54 · 928 阅读 · 0 评论 -
用CodeViz绘制函数调用关系图(call graph)
CodeViz是《Understanding The Linux Virtual Memory Manager》(at Amazon,下载地址在页尾)的作者 Mel Gorman 写的一款分析C/C++源代码中函数调用关系的open source工具(类似的open source软件有egypt、ncc)。其基本原理是给 GCC 打个补丁,让它在编译时每个源文件时 dump 出其中函数转载 2014-06-30 16:45:04 · 6499 阅读 · 0 评论