- 博客(8)
- 收藏
- 关注
原创 C++中类对象的内存布局和占用空间
1.非静态成员变量总合。2.编译器为了CPU计算,作出的数据对齐处理。(可用#pragma pack(n)来设定变量的对齐方式)3.为了支持虚函数,产生的额外负担。//例子:#pragma pack(2)class BU{ int number; //4 union UBffer { char buffer[13];
2016-05-31 22:09:01 705
原创 纯虚函数可以有函数体
出处:《C++Primer》中文版第五版541页第22行。我们可以为纯虚函数提供定义,不过函数体必须定义在类的外部。若定义在类的内部,会出现错误:pure-specifier on function-definition。class Dummy{ //error:pure_specifier on function-definition. virtual void proce
2016-05-31 15:21:24 5277
原创 《计算机组成与设计(硬件/软件接口)》读书笔记
第一章1.组成计算机的五个典型部件是输入、输出、存储器、运算器和控制器。2.CPI表示执行每条指令所需的时钟周期数的平均值。任何一个独立的因子都不能确定性能,只有三个因子的乘积(即执行时间)才是可靠的性能度量标准。CPU时间=指令数*CPI*时钟周期时间CPU时间=指令数*CPI/时钟频率IPC(instruction per clock c
2016-05-29 10:24:33 6348 1
原创 C++命名的强制类型转换(static_cast dynamic_cast const_cast reinterpret_cast)
cast_name(expression)1.static_cast:任何具有明确定义的类型转换,只要不包含底层const(比如常量指针,而不是指针常量),都可以使用。常用于窄化转换(告诉程序的读者和编译器:我们知道并且不在乎潜在的精度损失),编译器无法自动执行的类型转换(找回存在于void*指针中的值)。a.用于类层次结构中基类和派生类之间指针或者引用的转换(up-casting把派
2016-05-25 00:49:32 1024
原创 《UNIX环境高级编程》(第三版第一章)
21./dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。15./*errno可以是一个包含出错编号的整数,也可以是一个返回出错编号指针的函数。在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程。*/extern int errno;extern int *__errno_location(void);#define errno (*__errno_loc
2016-05-22 22:23:07 974
原创 一步一步写makefile
一、简单小例子//sum.c#include #include "add.h"int main(){ printf("%d\n",add(1,2));}//add.c#include "add.h"int add(int a,int b){ return a+b;}//add.hint add(int a,int b);现在开始输命令:1.
2016-05-05 16:16:47 538
原创 《Linux命令行与shell脚本编程大全》
纯草稿,只是为了以后整理第一章系统内存管理:内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间。换出 换入cat /proc/meminfo共享内存页面ipcs -m(查看系统上的当前共享内存页面)init进程 启动系统上所有其他进程开机时要自动启动的进程 /etc/inittab而ubuntu等 /etc/in
2016-05-04 14:32:02 942
原创 《C和指针》读书笔记
第一章1.#include #define EXIT_SUCCESS 1#define EXIT_FAILURE 02.在C语言中用/*和*/注释代码并不是十分安全(不允许嵌套),要从逻辑上删除一段C代码,最好的办法是使用#if指令。#if 0 statements#endif3.scanf:使用所有格式码(除了%c之外)时,输入值之前的空白(空格、
2016-05-03 19:33:58 996
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人