![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 75
renrenhappy
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
<br /> 一、预备知识—程序的内存分配 <br /> 一个由C/C++编译的程序占用的内存分为以下几个部分 <br /> 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 <br /> 操作方式类似于数据结构中的栈。 <br /> 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 <br /> 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 <br /> 3转载 2010-09-04 00:11:00 · 327 阅读 · 0 评论 -
c语言共用体对齐
还从网上找到共用体内存分配原则的文章,下面列几个例子说明:1.Union data1{ double d; int i; char c1; char c2[9]; }; sizeof(union data1)的值为16.在编译器默认设置的情况下,该共用体最大基本类型为double,它占8字节,所以此共用体以8来对齐。字符数组c2占9个字节原创 2010-10-10 15:42:00 · 2008 阅读 · 0 评论 -
c语言结构体对齐
C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但一不小心就会弄错。写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?开始学的时候,也被此类问题困扰很久。其实相关的文章很多,感觉说清楚的不多。结构体到底怎样对齐?有人给对齐原则做过总结,具体在哪里看到现在已记不起来,这里引用一下前人的经验(在没有#pragma pack宏的情况下):原则1、普通数据成员对齐规则:第一个数据成员放在offset为0转载 2010-10-10 15:09:00 · 3930 阅读 · 1 评论 -
gcc编译过程
转:http://blog.chinaunix.net/u2/82382/showart_1913755.html今天,我们继续gcc之旅吧。上节我们讲了些gcc的历史发展什么的,还有就是gcc与g++的区别。今天我们就从整体上对gcc编译过程有个细致的了解,也好明白他的工作原理,好为以后深入学习研究打下个基础。gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing)· 编译(Compiling)· 汇编(Assembling)· 链接(Linking)以hello.c为例子,在这四转载 2010-10-12 15:20:00 · 544 阅读 · 0 评论 -
c语言运算符优先级列表
<br /> <br />优先级<br />运算符<br />名称或含义<br />使用形式<br />结合方向<br />说明<br />1<br />[]<br />数组下标<br />数组名[常量表达式]<br />左到右 <br />()<br />圆括号<br />(表达式)/函数名(形参表) <br />.<br />成员选择(对象)<br />对象.成员名 <br />-><br />成员选择(指针)<br />对象指针->成员名 <br />2<br />-<br />负号运算符<br />原创 2010-10-12 15:03:00 · 421 阅读 · 0 评论 -
gcc如何生成库链接参数
<br />1.gcc包含的c/c++编译器<br />gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的。一般c程序就用gcc编译,c++程序就用g++编译。<br />2.gcc的基本用法<br />gcc test.c这样将编译出一个名为a.out的程序<br />gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名字<br />3.为什么会出现undefined reference to 'xxxxx'错误?<br />首先这是转载 2010-10-12 16:09:00 · 1301 阅读 · 0 评论 -
c语言位域
<br />转:http://hi.baidu.com/jasonlyy/blog/item/6620f5267da1203d8644f970.html<br />位域 : <br />有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域转载 2010-10-10 16:07:00 · 859 阅读 · 1 评论 -
深入浅出VA函数
http://www.ibm.com/developerworks/cn/linux/l-va/index.html转载 2011-04-12 13:05:00 · 688 阅读 · 0 评论