为什么要有struct关键字


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

Tags in this post...

面试题 相关文章推荐
Java的五个基础面试题
Feb 26 面试题
经典c++面试题六
Jan 18 面试题
一些Solaris面试题
Mar 22 面试题
Linux开机引导的步骤是什么
Oct 19 面试题
linux面试题参考答案(9)
Jan 29 面试题
介绍一下Linux中的链接
May 28 面试题
How TDD works
Sep 30 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
是否可以从一个static方法内部发出对非static方法的调用?
Aug 18 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
Aug 18 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
Oct 30 面试题
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
smarty表格换行实例
2014/12/15 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
[00:10]神之谴戒
2019/03/06 DOTA
详解Python编程中time模块的使用
2015/11/20 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
简单了解Python中的几种函数
2017/11/03 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
pytorch实现线性拟合方式
2020/01/15 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
监理员的岗位职责
2013/11/13 职场文书
渡河少年教学反思
2014/02/12 职场文书
校园标语大全
2014/06/19 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
2014年内勤工作总结
2014/11/24 职场文书
施工安全员岗位职责
2015/04/11 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
基于python的matplotlib制作双Y轴图
2021/04/20 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android