之所以突然开始阅读这本书,是因为在和同学讨论一段代码时的产生了争议,这段代码是TinyOS里的代码,同时,在很多其它地方也会遇到这样的使用,那就是typedef struct,代码如下:

1 typedef struct cc2420_packet_t {
2 cc2420_header_t packet;
3 uint8_t data[];
4 } cc2420_packet_t;

有个师妹认为此处最后的cc2420_packet_t是结构体变量,第一行的cc2420_packet_t是结构标签。我认为这种观点是错误的,这是 忽略了typedef的作用,最后一行的cc2420_packet_t是用typedef关键字声明的自定义结构类型,在同学的提示下,我找了本 《C专家编程》查阅,没想里面的3.7节正好讲述了该问题,下面一起来看看。

3.7 typedef struct foo {...foo;}的含义

书中介绍的讲解代码如下:

1 typedef struct my_tag {
2  int i;
3 } my_type;
4
5  struct my_tag variable_1;
6
7 my_type variable_2;

其中可以很明白理解其中的意思就是上面所解释的。但是书中认为,对结构使用typedef唯一的好处只是不用书写struct关键字而已,带来的代码模糊性缺更加麻烦,因此不推荐这样使用。

第七章 对内存的思考

7.1 Intel 80x86系列

7.2 Intel 80x86内存模型以及它的工作原理

内存容量单位一览

单位 2的乘方数 含义 字节数

Kilo 2_10 1000个字节

Mega 2_20 100万个字节

Giga 2_30 10亿个字节

Tera 2_40 1万亿个字节

Bubba 2_64 1800亿亿个字节    

posted on 2011-06-22 20:41  williamwue  阅读(166)  评论(0编辑  收藏  举报