c++
文章平均质量分 65
ptn3900
人生三大乐趣:写代码,车,股票
展开
-
c++ 可变参数列表
<br />引言<br /><br /> C/C++语言有一个不同于其它语言的特性,即其支持可变参数,典型的函数如printf、scanf等可以接受数量不定的参数。如:<br />printf ( "I love you" ); <br />printf ( "%d", a );<br />printf ( "%d,%d", a, b );<br /><br /> 第一、二、三个printf分别接受1、2、3个参数,让我们看看printf函数的原型:<br />int printf (转载 2011-05-18 21:32:00 · 2828 阅读 · 2 评论 -
2.2copy constructor的构建操作
有三种情况,会以一个object的内容作为另一个class object的初值。1.一个object做明确的初始化操作class X;X x;X xx = x;2.当object被当作参数交给某个函数时。extern void foo(X x);void bar(){ X xx; foo(xx);}3.当函数传回一个class objec原创 2011-06-17 22:21:00 · 708 阅读 · 0 评论 -
objdump
因为计算机大都是采用哈佛结构,数据和指令分开存储的的程序组织形式,因此当我门编译,汇编,连接,(符号解吸,段的重定位)。而为了能让程序更好的被执行,最终生成的目标文件包含了足够多了信息生怕自己被歧视而不被执行。所以面对2进制的目标文件来说,我门是很难发现或者看到什么有用的信息,因此objdump这个工具的实际意义是多么的令人喜爱,只有当你要探索一个目标文件的组织形式的时候就能体会了原创 2011-06-17 14:45:00 · 4385 阅读 · 0 评论 -
第一章 关于对象
1.加上封装后的布局成本不同函数没有增加成本。额外负担是由virtual引起的。virtual functionvirtual base class1.1c++对象模型class data member:static, nostaticclass member functions:static, nostatic, virtual class Point{p原创 2011-06-17 10:54:00 · 428 阅读 · 0 评论 -
在Emacs中使用etags来浏览代码
1).安装etags,一般来讲,这是emacs的内建程式; 2).在当前目录建立etag -R --languages=c++,生成TAGS文件。 3).将创建好的tag表通知emacs: M-x visit-tags-table,选择TAGS文件,读取文件 4).使用: A.M-. :跳至相应的函数定义处;输入查找的标记名 B.M原创 2011-06-15 15:58:00 · 1175 阅读 · 0 评论 -
catgs简介
一. ctags是干什么的ctags的功能:扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。我用的是Exuberant Ctags,在Windows上使用,就一个可执行文件,非常绿色,可在sourceforge下载。二. ctags可以识别哪些语言,是如何识别的ctags识别很多语言,可以用如下命令来查看:ctags转载 2011-06-15 15:08:00 · 887 阅读 · 0 评论 -
volatile
<br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br /> 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br /> 3). 多线程应用中被几个任务共享的变量转载 2011-04-21 16:59:00 · 218 阅读 · 0 评论 -
库
<br />library_name.major_num.minor_num.patch_num<br />_g是调试库,增加对库的调试功能。<br />_p代码剖析库,增加复杂的代码剖析和性能分析。<br />命令:<br />nm [options] file<br />列出保存在file中的符号。<br />-c|--demangle将符号名转换为用户级的名字。在让c++函数名可读方面特别有用。<br />-s|--print-armap当用于存档(.a)文件时,输出把符号名映射到定义该符号的模块或成原创 2011-04-10 11:39:00 · 301 阅读 · 0 评论 -
出错处理
<br />1.assert宏<br />#include<assert.h><br />void assert(int expressio);<br />禁用assert宏<br />#define NDEBUG<br />2.预编译<br />_LINE_,_FILE_宏<br />_LINE_,为int型行号。<br />_FILE_,为char*型文件名。<br />_FUNCTION_,为当前函数的名字,属于GNU C扩展。<br />3.标准库函数<br />stdlib.h voi原创 2011-04-10 10:15:00 · 344 阅读 · 0 评论 -
位域
<br />1.位域又叫位段(位字段),是一种特殊的结构成员或联合成员(即只能用在结构或联合中),用于指定该成员在内存存储时所占用的位数,从而可以在机内更紧凑地表示数据。<br />2.位域的使用主要出现在如下两种情况:<br /> (1)当机器可用内存空间较少而使用位域可以大量节省内存时。如,当把结构作为大数组的元素时。<br /> (2)当需要把一结构或联合映射成某预定的组织结构时。例如,当需要访问字节内的特定位时。<br />3.当要把某个成员说明成位域时,其类型只能是in转载 2011-05-17 16:14:00 · 401 阅读 · 0 评论 -
程序退出自动打印函数栈
#include#include#include#include #include static void WidebrightSegvHandler(int signum) { void *array[10]; size_t size; char **strings; size_t i, j; signal(sig转载 2011-12-14 18:54:28 · 678 阅读 · 0 评论