为什么要有struct关键字


Posted in 面试题 onMay 08, 2012
struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。
在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。
经验不足的开发人员往往将所有需要传送的内容依顺序保存在char 型数组中,通过指针偏移的方法传送网络报文等信息。这样做编程复杂,易出错,而且一旦控制方式及通信协议有所变化,程序就要进行非常细致的修改,非常容易出错。这个时候只需要一个结构体就能搞定。平时我们要求函数的参数尽量不多于4 个,如果函数的参数多于4 个使用起来非常容易出错(包括每个参数的意义和顺序都容易弄错),效率也会降低(与具体CPU 有关,ARM芯片对于超过4 个参数的处理就有讲究,具体请参考相关资料)。这个时候,可以用结构体压缩参数个数。

Tags in this post...

面试题 相关文章推荐
请说出你所知道的线程同步的方法
Apr 19 面试题
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
Mar 14 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
c语言常见笔试题总结
Sep 05 面试题
struct与class的区别
Feb 03 面试题
北京一家公司的.net开发工程师笔试题
Apr 17 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
Jan 21 面试题
Windows和Linux动态库应用异同
Apr 17 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
Apr 11 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
May 24 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
JAVA招聘远程笔试题
Jul 23 面试题
Kingsoft金山公司C/C++笔试题
May 10 #面试题
strlen的几种不同实现方法
May 31 #面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 #面试题
金山毒霸系列的笔试题
Apr 13 #面试题
JAVA和C++区别都有哪些
Mar 30 #面试题
凌阳科技股份有限公司C++程序员面试题笔试题
Nov 20 #面试题
C++面试题:关于链表和指针
Jun 05 #面试题
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
小程序日历控件使用方法详解
2018/12/29 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
Python通过正则表达式选取callback的方法
2015/07/18 Python
详解Python自建logging模块
2018/01/29 Python
Python PIL库图片灰化处理
2020/04/07 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
高中考试作弊检讨书
2014/01/14 职场文书
教师听课评语大全
2014/12/31 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
个人业务学习心得体会
2016/01/25 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL