Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4042534
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

分类: C/C++

2008-03-01 16:36:09

看《深入理解计算机系统》有这样的话:

总线
        贯穿整个系统的是一组电子管道,称做总线,它携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字(word)。字中的字节数(即字长)是一个基本的系统参数,各个系统中也不尽相同。比如:Intel Pentium系统的字长为4字节,而服务器类的系统,如:Intel Itaniums和高端的Sun公司的SPARCS的字长为8字节。用于汽车和工业中的嵌入式控制器之类小的系统的字长往往只有1或2字节。

从这里面想到东西:
1>. 原来有人问计算机最小处理单元是什么?
        一个bit or 一个bytes。有人说是1bit。从上面说的来看应该可以这么说,计算机在数据传输上最小单位为一个字,但一个字的大小要根据不同的系统来说,有4bytes, 8bytes等等其他的情况。

2>. 在C语言中我们还记得这样的定义:
struct
{
   uint16_t     t1;
   uint32_t     t2;
} TEST_ST;

在Linux gcc Intel X86机器下编译时sizeof(TEST_ST),应该为8的。现在理解总线看这个问题就比较好解释了。t1变量字内存中会占用4bytes的。有2bytes就是浪费了,但那样做可以提高处理速度的哦。所以我们平时自己定义struct中的数据时要注意为机器的字长整数倍哦。在提高性能这个问题上很重要的。
阅读(1918) | 评论(0) | 转发(0) |
0

上一篇:[转]人生规划

下一篇:字,字长问题

给主人留下些什么吧!~~