2014年4月17日

内联函数和宏定义的区别

摘要: 两者区别如下:内联函数在编译器时展开,宏在预编译时展开。在编译的时候内联函数可以直接被嵌入到目标代码中,而宏只是一个简单的文本替换。内联函数可以完成诸如类型检查、语句是否正确等编译功能,宏就不具有这样的功能。宏不是函数,inline函数是函数。宏在定义时要小心宏参数(一般情况是把参数... 阅读全文

posted @ 2014-04-17 22:47 胡永光 阅读(174) 评论(0) 推荐(0) 编辑

#pragma pack(x) CPU对齐

摘要: 编译器会尽量把成员对齐以提高内存的命中率。对齐是可以更改的,使用"#pragma pack(x)“ 可以改变编译器的对齐方式。 C++固有类型的对界取编译器对齐方式与自身大小中较小的一个。例如,指定编译器按2对齐,int 类型的大小是4,则int 的对界为2和4中较小的2。在默认的对... 阅读全文

posted @ 2014-04-17 21:49 胡永光 阅读(219) 评论(0) 推荐(0) 编辑

static 变量(静态变量)

摘要: 在C++的面向对象编程中,static还可以加在类的数据成员或成员函数之前。这样定义的数据成员或成员函数就被类所拥有,而不再属于类的对象。#include using namespace std;class widget{ public: widget() { ... 阅读全文

posted @ 2014-04-17 00:15 胡永光 阅读(252) 评论(0) 推荐(0) 编辑

导航