自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

转载 C程序中宏的底层是如何替换的

简单来说:宏定义又称为宏代换、宏替换,简称“宏”。是C提供的三种预处理功能的其中一种。 复杂的请看下面,讲的很全。下面的带参宏定义,多行宏定义,在Linux内核源码中很多。另外sizeof也是一个宏定义。 宏定义 宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译 不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define ...

2019-03-29 08:05:50 202

原创 【项目实践】基于tc_malloc的高并发内存池

实现功能 我实现的高并发内存池解决的问题是: 内存碎片问题; 性能问题; 高并发(在多线程同时申请内存时,效率依旧很高)。 threadcache是解决高并发的性能问题,因为没有锁; centralcache是平衡threadcache资源竞争的问题,避免一个线程用多了,另一个线程没得用;但是这里的平衡会付出一定的代价,当多个线程同时来申请时需要加锁,CentralCache下面挂的是一...

2019-03-28 09:43:38 884 1

原创 【C++】模板的理解

泛型编程 泛型编程是指编写跟类型无关的代码,它是代码复用的一种手段。模板是泛型编程的基础。 模板又分为函数模板和类模板。 函数模板 函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。 template<typename T> void Swap(T& left, T& right) { T tmp = left; left = ...

2019-03-08 18:12:03 181

原创 [C++]单例模式

malloc/free和new/delete的区别 共同点是: 都是从堆上申请空间,并且需要手动释放。 不同点: malloc和free是函数,new和delete是操作符 malloc申请的空间不会初始化,new申请的空间可以初始化 malloc申请空间时,需要手动计算空间大小,new后面跟空间类型即可 malloc的返回值为void*,在使用时必须强转,new不需要,因为new后跟...

2019-03-07 09:36:10 168

原创 【C++】内存管理

为什么要划分出不同的内存区域? 不管是C语言还是C++,划分出不同的内存区域,都是为了更好的管理数据。 程序在执行的时候,需要不同性质的数据,所以才划分出了不同的区域。 全局数据和静态数据有什么区别? 链接属性不同,全局数据的链接属性是全局的,static的链接属性只在当前文件 栈一般只有8-10兆。 malloc/calloc/realloc的区别 malloc是开辟空间; call...

2019-03-05 16:03:48 106

原创 【C++】类和对象(3)

初始化列表 初始化列表是成员或类定义的地方。 初始化列表格式: 以冒号开始,接着是以一个逗号分隔的数据列表,每个成员变量后面跟一个放在括号中的初始值或表达式。 class Date { public: Date(int year, int month, int day) :_year(year) , _month(month) , _day(day) {} private: ...

2019-03-04 15:07:28 126

原创 【C++】类和对象(2)

类的六个默认成员函数 如果一个类中什么成员都没有,就称该类为空类,但是空类中并不是什么都没有,任何一个类在我们不写的情况下,都会自动生成6个默认成员函数。 class Student{}; 构造函数 构造函数虽然叫做构造,但是并不是构造对象,而是完成初始化工作。 class Date { public: Date()//构造函数 { //cout << "Dat...

2019-03-03 13:02:11 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除