C++之auto_ptr
摘要:【C++之auto_ptr】 std::auto_ptrstd::auto_ptr 属于 STL,当然在 namespace std 中,包含头文件 #include<memory> 便可以使用。std::auto_ptr 能够方便的管理单个堆内存对象。我们从代码开始分析:void TestAutoPtr() {std::auto_ptr<Simple> my_memory(new Simple(1)); // 创建对象,输出:Simple:1if (my_memory.get()) { // 判断智能指针是否为空my_memory->PrintSomething
阅读全文
C++内存分配
摘要:【C中的各种LOC】 C语言跟内存申请相关的函数主要有 alloca,calloc,malloc,free,realloc,sbrk等.其中alloca是向栈申请内存,因此无需释放. malloc分配的内存是位于堆中的,并且没有 初始化内存的内容,因此基本上malloc之后,调用函数memset来初
阅读全文
windows c++ 问题
摘要:【LocalAlloc 和 GlobalAlloc】 16位windows用一个全局堆和局部堆来管理内存,每一个应用程序或dll装入内存时,代码段被装入全局堆,而系统又为每个实例从全局堆中分配了一个64kb的数据段作为该实例的局部堆,用来存放应用程序的堆栈和所有全局或静态变量。而LocalAlloc
阅读全文
C++中的INL
摘要:inl 文件是内联函数的源文件。内联函数通常在c++头文件中实现,但有的时候内联函数较多或者出于一些别的考虑(使头文件看起来更简洁等),往往会将这部分具体定义的代码添加到INL文件中,然后在该头文件的末尾将其用#include引入。由此也可以看到inl文件的例外一个用法的影子——模板函数、模板类的定义代码的存放。对于比较大的工程来说,出于管理方面的考虑,模板函数、模板类的声明部分一般存放在一个或少数几个文件中,而将其定义部分存放在inl文件中,然后在相应的头文件中包含进来。 Google代码规范中也谈到了inl文件,需要阅读的读者可以从这里阅读Google代码规范,http://google.
阅读全文