C和指针 第十章 结构和联合 习题
1. 记账信息结构联合
typedef struct {
unsigned int areaNum;
unsigned int transNum;
unsigned int station;
} phoneNumber;
struct {
phoneNumber fromPhone;
phoneNumber toPhone;
phoneNumber payPhone;
} dialHistory;
2. 指令解码:
#include <stdio.h>
typedef struct {
unsigned int dsg_reg : 3;
unsigned int dst_mode: 2;
unsigned int opcode : 11;
} sgl;
typedef struct {
unsigned int dst_reg : 3;
unsigned int dst_mode: 3;
unsigned int src_reg : 3;
unsigned int src_mode: 3;
unsigned int opcode : 4;
} dbl;
typedef struct {
unsigned int offset : 8;
unsigned int opcode : 8;
} bran;
typedef struct {
unsigned int dst_reg : 3;
unsigned int dst_mode : 3;
unsigned int src_reg : 3;
unsigned int opcode : 7;
} reg;
typedef struct {
unsigned int opcode : 16;
} mic;
typedef union {
unsigned short addr;
mic misc;
bran branch;
sgl sgl_op;
reg reg_src;
dbl dbl_op;
} machine_inst ;
int main()
{
machine_inst x = {16};
printf("%0x\n", x.sgl_op.dst_mode);
return 0;
}
typedef 定义联合类型,就可以使用各种联合内的字段结构,访问了
C和指针 第十章 结构和联合 习题的更多相关文章
- C和指针 第十章 结构和联合 (一)
结构体: 聚合数据类型是指,能够同时存储超过一个的单独数据,C语言中有两个聚合数据类型,数组和结构体.数组中储存的类型必须相同,元素通过下标和指针引用来访问的. 结构体也是一些值的集合,但是结构体中每 ...
- C和指针 第十章 结构和联合 (二)
结构体传值: 结构体也是标量,像字符和整数一样,可以传递给一个函数,但是传入整个结构体效率很低,可以传入指向结构体的指针来提高效率.如果不希望程序对结构体变量改变可以加入const关键词. typed ...
- C的指针疑惑:C和指针10(结构和联合)
结构也可以作为传递给函数的参数,它们也可以作为返回值从函数返回,相同类型的结构体变量相互之间可以赋值. 申明结构时使用另一种良好技巧是用typedef创建一种新的类型. typedef struct{ ...
- C和C指针小记(十五)-结构和联合
1.结构 1.1 结构声明 在声明结构时,必须列出它包含的所有成员.这个列表包括每个成员的类型和名称. struct tag {member-list} variable-list; 例如 //A s ...
- C语言的结构和联合,以及PHP是怎么实现弱类型的
C语言的结构(struct):包含多个成员,可能有多种数据类型,并且需要分配几种类型占用空间之和的空间. 联合(union):支持多种类型,供使用者使用其中一种数据类型,当然是需要分配其中占用空间最大 ...
- 【转】结构struct 联合Union和枚举Enum的细节讨论
结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...
- C++笔记--指针数组和结构
指针 类型为T*的变量能保存一个类型T对象的地址 Char c=‘a’:Char * p=& c://保存了c的地址 指针的操作一般都是间接的引用,就是相当于引用指针所指的对象. 0是一个特殊 ...
- C语言入门第十章----结构体
C语言结构体从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由int.char .float等基本类型组成的,你可以认为结构体是一种聚合类型. 在实际开发中,我们可以将一组类型不同的. ...
- C和指针 (pointers on C)——第十章:结构和联合(下一个)锻炼
//1.本章只为了刷存在演习.. . typedef struct phone { char * quhao; char * jiaohuantai; char * zhanhaoma; }; typ ...
随机推荐
- win7如何恢复以前的ie版本
如何恢复以前的ie版本-控制面板,程序和功能-查看已安装的更新-搜索Internet explorer,然后卸载更新就Ok.
- Mybatis(综合案例)
MyBatis本是apache的一个开源项目iBatis,2010年这个项目有Apache software foundation 迁移到了Google code,并改名MyBatis.2013年11 ...
- Eclipse InstaSearch搜索词法 (很多并不支持)
1. 中文翻译 http://www.cnblogs.com/xing901022/p/4974977.html 2. 英文原文 http://lucene.apache.org/core/3_0_3 ...
- 关于ES6新增的东西(二)
六.原生Promise 就是一个对象,用来传递异步操作的数据(消息) pending(等待.处理中)-> Resolve(完成.fullFilled) -> Rejected(拒绝.失败) ...
- Java并发编程:深入剖析ThreadLocal
原文出处: 海 子 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理.首先,本文先谈一下对ThreadLocal的理解,然后根据Threa ...
- 记录android显示流程
mtk平台: displayclient->deque->数据放入显存->surfaceflinger->分发数据到surfacetexture(OnFrameAvailabl ...
- 17-前端开发之jQuery
什么是 jQuery ? jQuery 是一个 JavaScript 库,它极大地简化了 JavaScript 编程. jQuery是一个兼容多浏览器的javascript库,核心理念是write l ...
- document.forms用法
1.FF中不能接受document.forms("formname")的使用,ie中可以 最好改成document.forms["formname"]的下标用法 ...
- phpstorm 激活服务器
phpstorm 激活服务器 http://jetbrains.tencent.click/ (2016-09-19 可用) webstorm 激活服务器 http://owo.help(2016-0 ...
- 使用CocoaPods开发并打包静态库
Cocoapods作为OS X和iOS开发平台的类库管理工具,已经非常完善和强大.通常我们用pod来管理第三方开源类库,但我们也极有可能会开发一个用pod管理依赖关系的静态类库给其他人使用,而又不愿意 ...