![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C51
文章平均质量分 67
tubujia1
这个作者很懒,什么都没留下…
展开
-
C语言字节对齐
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访转载 2015-02-27 12:56:52 · 318 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2015-02-12 08:27:25 · 287 阅读 · 0 评论 -
大端格式与小端格式
1. 什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 2.为什么会有大小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了转载 2015-02-15 20:39:57 · 529 阅读 · 0 评论 -
关键字using与interrupt
1、关键字using (1)在函数的入口处将当前工作寄存器组保护到堆栈中,指定的工作寄存器内容不会改变; (2)函数返回之前将被保护的工作寄存器组从堆栈中恢复。 (3)带using属性的函数不能返回bit类型的值; (4)using不能用于外部函数; (5)51的寄存器组编号为0~3,主函数默认使用0,中断函数应使用与主函数不同的寄存器组; (6)51有两个优先级(高和低,在IP中原创 2015-02-15 10:50:39 · 1939 阅读 · 0 评论