__align __align 关键字指示编译器在 n 字节边界上对齐变量。 __align 是一个存储类修饰符。它不影响函数的类型。 语法 __align(n) 其中: n 是对齐边界。 对于局部变量,n 值可为 1、2、4 或 8。 对于全局变量,n 可以具有最大为 2 的 0x80000000 ...
分类:
其他好文 时间:
2016-07-09 11:57:30
阅读次数:
141
说明:如果你看到了这篇,请略过。 struct是复合类型。 其中的成员在内存中的分布都是对齐的。 这个对齐的意思是,struct的sizeof运算结果必定是其最大类型长度的整数倍。 --注意,如果struct内部还有struct的话,应该将内部struct的成员拆开来看。而不应将内部struct看成 ...
分类:
其他好文 时间:
2016-07-05 11:43:42
阅读次数:
113
1.实时系统概念
2.编译连接
3.AT&T汇编指令学习(GCC)
4.内存对齐
5.Big-Endian大端模式和Little-Endian小端模式1.实时系统概念前后台系统后台是各种面向硬件的程序,如中断,定时器,gpio等。
前台是:main()
{ while(1)
{
;
}
}
循环中不断调用各种函数实现功能。代码临界段指处理时不可分割的代...
分类:
其他好文 时间:
2016-06-21 07:39:26
阅读次数:
214
1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存 中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类型在内存冲就是按照一定的规则排列的,而不是一个紧挨着一 ...
分类:
其他好文 时间:
2016-06-20 15:26:04
阅读次数:
261
1. 回归本质 (1)class是一种特殊的结构体 ①在内存中class依旧可以看作变量的集合 ②class与struct遵循相同的内存对齐规则 ③class中的成员函数与成员变量是分开存放的。即每个对象有独立的成员变量,但所有对象共享类中的成员函数。 【编程实验】对象内存布局初探 (2)运行时的对 ...
分类:
编程语言 时间:
2016-06-14 14:02:40
阅读次数:
231
在空间看到别人的疑问引起了我的兴趣,刚好是我感兴趣的话题,就写一下。为了别人的疑问,也发表在qq空间里。因为下班比较晚,10点才到家,发表的也晚。其实是个简单的问题。 直接用实例和内存图说明: #include <iostream> using std::cout; using std::cin; ...
分类:
其他好文 时间:
2016-06-14 01:01:11
阅读次数:
138
1.什么是内存对齐
(1) 编译器为每个“数据单元”按排在某个合适的位置上。
(2) C、C++语言非常灵活,它允许你干涉“内存对齐”。也就是可以人为的设置编译器的对齐方式。
2.为什么要对齐
性能原因:在对齐的地址上访问数据快。如果是字节对齐方式存储的话,CPU读取的时候只需要进行一个总线周期即可全部读取完毕,如果不对齐的话,对于32位的系统,CPU读取的时候一般架构...
分类:
编程语言 时间:
2016-06-12 03:28:41
阅读次数:
215
sizeof(a)的值是16。 分析:char c1占用1个字节 int i占用4个字节,c1不是i的整数倍,所以c1对齐为4个字节 (c1 + i)占用8个字节 short s占用2个字节 (c1 + i) 是s的整数倍,所以i不用对齐 (c1+ i + s)占用10个字节 int j占用4个字节 ...
分类:
其他好文 时间:
2016-06-08 14:05:07
阅读次数:
121
1、结构体是一种新的数据类型,对C语言的数据类型进行了极大的扩充。structSTU{intage;charname[15];};structSTUa;//结构体实例structSTU*b;//结构体指针(1).可以通过a.age对其进行取成员的操作,b->age也可以进行结构体的操作。b->age存在问题,必须有一个结构体空间已..
分类:
其他好文 时间:
2016-06-02 20:10:00
阅读次数:
120
一、类实例化对象 一、类实例化对象 1.类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它。 2.一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量上。 二、类对象存储模型 每个对象的大小为类中所有成员变量的大小之和。并且遵循内存对齐 ...
分类:
其他好文 时间:
2016-05-20 13:25:06
阅读次数:
114