为什么要有struct关键字


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

Tags in this post...

面试题 相关文章推荐
请说出你所知道的线程同步的方法
Apr 19 面试题
Java TransactionAPI (JTA) 主要包含几部分
Dec 07 面试题
C,C++的几个面试题小集
Jul 13 面试题
枚举和一组预处理的#define有什么不同
Sep 21 面试题
铭万公司.net面试题笔试题
Jul 20 面试题
系统管理员的职责包括那些?管理的对象是什么?
Sep 20 面试题
linux面试题参考答案(5)
Sep 01 面试题
常用UNIX 命令(Linux的常用命令)
Dec 26 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Jan 06 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
Jun 05 面试题
如何整合JQuery和Prototype
Jan 31 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
Apr 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
239军机修复记
2021/03/02 无线电
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
django框架创建应用操作示例
2019/09/26 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
关于运动会的稿件
2014/02/02 职场文书
购房个人委托书范本
2014/10/11 职场文书
收款委托书
2014/10/14 职场文书
作文之亲情600字
2019/09/23 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js