为什么要有struct关键字


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

Tags in this post...

面试题 相关文章推荐
可以在一个PHP文件里面include另外一个PHP文件两次吗
May 22 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
Sep 09 面试题
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
Jan 07 面试题
类成员函数的重载、覆盖和隐藏区别
Jan 27 面试题
北京华建集团SQL面试题
Jun 03 面试题
STP协议的主要用途是什么?为什么要用STP
Dec 20 面试题
Can a struct inherit from another struct? (结构体能继承结构体吗)
Sep 25 面试题
一套C#面试题
Oct 09 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 面试题
EJB2和EJB3在架构上的不同点
Sep 29 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
Aug 02 面试题
String、StringBuffer、StringBuilder有区别
Sep 18 面试题
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
自己前几天写的无限分类类
2007/02/14 PHP
PHP 日期加减的类,很不错
2009/10/10 PHP
php 数组使用详解 推荐
2011/06/02 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
php数组和链表的区别总结
2019/09/20 PHP
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python实现扫雷游戏
2020/03/03 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
门卫岗位职责
2013/11/15 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
秘书英文求职信范文
2014/01/31 职场文书
后备干部考察材料
2014/02/12 职场文书
励志演讲稿500字
2014/08/21 职场文书
新教师培训心得体会
2014/09/02 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
大学学生会辞职信
2015/05/13 职场文书
七年级思品教学反思
2016/02/20 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis