什么是bss段
摘要:BSS(Block Started by Symbol)这个词最初是UA-SAP汇编器(United Aircraft Symbolic Assembly Program)中的一个伪指令,用于为符号预留一块内存空间。一般C语言的编译后执行语句都编译成机器代码,保存在.text段;已初始化的全局变量和静态变量都保存在. data段;未初始化的全局变量和静态变量一般放在一个叫."bss"的段里。我们知道未初始化的全局变量和局部静态变量默认值都为0,本来它们也可以被放在.data段的,但是因为它们都是0,所以为它们在.data段分配空间并且存放数据0是没有必要的。程序运行的时候它
阅读全文
posted @
2012-11-17 21:51
WithYouTh
阅读(1243)
推荐(0)
堆和栈的区别
摘要:一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全...
阅读全文
posted @
2012-11-17 20:06
WithYouTh
阅读(166)
推荐(0)
c语言中static 用法总结
摘要:惨痛教训: 假设在test.h中定义了一个static bool g_test=false; 若test1.c和test2.c都包含test.h,则test1.c和test2.c分别生成两份g_test,在test1.c 中置g_test=true,而test2.c中仍然为false并未改变!shit!! 一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CP...
阅读全文
posted @
2012-11-17 17:16
WithYouTh
阅读(272)
推荐(0)