为什么要有struct关键字


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

Tags in this post...

面试题 相关文章推荐
String是最基本的数据类型吗?
Jun 13 面试题
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
Sep 15 面试题
凌阳科技股份有限公司C++程序员面试题笔试题
Nov 20 面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 面试题
.NET程序员的数据库面试题
Oct 10 面试题
一套带网友答案的.NET笔试题
Dec 06 面试题
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
Nov 20 面试题
3个CCIE对一个工程师的面试题
May 06 面试题
sort命令的作用和用法
Aug 25 面试题
若干个Java基础面试题
May 19 面试题
请说出以下代码输出什么
Aug 30 面试题
UNIX文件系统常用命令
May 25 面试题
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和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
js URL参数的拼接方法比较
2012/02/15 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
js实现双色球效果
2020/08/02 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python跳出循环语句continue与break的区别
2014/08/25 Python
整理Python中的赋值运算符
2015/05/13 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Django实现文件上传下载
2019/10/06 Python
Python实现直播推流效果
2019/11/26 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
Ajax和javascript的区别
2013/07/20 面试题
珍惜水资源建议书
2014/03/12 职场文书
参观邀请函范文
2015/02/02 职场文书
风之谷观后感
2015/06/11 职场文书
高中运动会前导词
2015/07/20 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
详解SQL的窗口函数
2022/04/21 Oracle
cypress测试本地web应用
2022/06/01 Javascript