为什么要有struct关键字


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

Tags in this post...

面试题 相关文章推荐
Java的接口和C++的虚类的相同和不同处
Mar 27 面试题
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
Jun 05 面试题
Java方面的关于数组和继承的笔面试题
Sep 18 面试题
数据库设计的包括哪两种,请分别进行说明
Jul 15 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
用友笔试题目
Oct 25 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
在C#中如何实现多态
Jul 02 面试题
提高EJB性能都有哪些技巧
Mar 25 面试题
AJAX的优缺点都有什么
Aug 18 面试题
日期和时间问题
Jan 04 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
Nov 22 面试题
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
php单件模式结合命令链模式使用说明
2008/09/07 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
Python序列类型的打包和解包实例
2019/12/21 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
Python常用数据分析模块原理解析
2020/07/20 Python
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
求职信模板
2014/05/23 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL