代码改变世界

随笔档案-2012年4月21日

堆和栈的区别

2012-04-21 21:29 by java20130722, 169 阅读, 收藏,
摘要: 转自:http://www.cnblogs.com/pomp/archive/2007/10/19/930145.html 首先向其致敬!简单的可以理解为:heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、 栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等其操作方式类似于数据结构中的栈。2、 堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意 阅读全文

Linux 引导管理器 grub2 使用简介

2012-04-21 20:55 by java20130722, 346 阅读, 收藏,
摘要: 转自:杜昌彬的空间首先向其致敬!有改动。grub是Linux系统即其他类unix系统的主流bootloder,由于grub原来版本的设计存在很大缺陷,与以前的grub很不相同,其使用和配置也发生很大变化。现在很多Linux发行版本都使用了grub2作为引导系统,比如 Ubuntu。grub2是模块化的,可动态加载需要的模块,另外增加了更多的功能,具有较高的可扩展性。grub2支持自定义菜单的主题,命令更丰富,支持网络启动等。经过重新设计,将新的grub命名为grub2.grub2的安装非常简单,使用grub-install命令即可。如:# grub-install --root-directo 阅读全文

extern "C" 和 #ifdef __cplusplus 解释

2012-04-21 09:14 by java20130722, 264 阅读, 收藏,
摘要: 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。 要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c++中,为了支持重载机制,在编译生成的汇 阅读全文