随笔分类 -  C/C++

什么是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) 推荐(0)
堆和栈的区别
摘要:一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全... 阅读全文
posted @ 2012-11-17 20:06 WithYouTh 阅读(166) 评论(0) 推荐(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) 推荐(0)
函数名与函数指针
摘要:详细的描述了函数指针的用法 阅读全文
posted @ 2012-09-28 22:29 WithYouTh 阅读(274) 评论(0) 推荐(0)