外汇跟单网站开发,小程序wordpress打包,花都网站建设价格,做公司网站需要几天不顾可移植性#xff0c;尽可能多地使用汇编代码。 linux在可移植性上#xff0c;走的是中间路线#xff0c;所有接口和核心代码都是用的c语言#xff0c;但是对于性能要求高的部分都会根据硬件进行调整。
体系结构
说到计算机的体系结构#xff0c;具体包含计算机的指令…不顾可移植性尽可能多地使用汇编代码。 linux在可移植性上走的是中间路线所有接口和核心代码都是用的c语言但是对于性能要求高的部分都会根据硬件进行调整。
体系结构
说到计算机的体系结构具体包含计算机的指令集架构处理器组织总线结构存储体系结构等。 即软硬件。
字长
当人们说某个机器是多少位时说的就是字长。 处理器寄存器的大小和它的字长是一样的。 对于一个体系结构它的各个部位比如内存总线最少也要和它的字长一样大。 虚拟空间的大小取决于字长
虚拟地址空间的大小决定了一个程序能够寻址的内存数量但实际上物理内存的大小可能比虚拟地址空间小得多。字长决定了虚拟地址空间的最大大小。
Linux的一些可移植性准则
一个char的长度一定是1字节。 尽管没有规定int类型的长度是32位但在linux当前支持的所有体系中都是32位的。 尽管没有规定short类型的长度为16位但在linux当前支持的所有体系中都是16位的。 不应该假定long和指针的长度在linux现在支持的体系中它们可能是32位或者64位的。
char型的符号问题
C标准表示char类型可以带符号也可以不带符号有具体的处理器和编译器决定。 在大部分体系结构上char默认是带符号的-128到127。 保险就是
signed char i -1;
unsigned char 255;数据对齐
数据对齐是指在计算机中数据在内存中存储时按照一定规则排列的过程。通常数据类型有特定的字节对齐要求以便在访问内存时提高效率。 常见的对齐规则包括
字节对齐Byte Alignment 数据存储的起始地址必须是其字节大小的整数倍。字对齐Word Alignment 数据存储的起始地址必须是字的整数倍。 通常数据对齐是gcc老哥需要考虑的。
字节字节是最小单位顺序大端小端
大端序Big-Endian 先读高位字节。
小端序Little-Endian 先读低位字节。
eg。 00000000 0000000 00000100 00000011 大端先读0000000 小端先读0000011