为什么要有struct关键字
struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。
在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。
经验不足的开发人员往往将所有需要传送的内容依顺序保存在char 型数组中,通过指针偏移的方法传送网络报文等信息。这样做编程复杂,易出错,而且一旦控制方式及通信协议有所变化,程序就要进行非常细致的修改,非常容易出错。这个时候只需要一个结构体就能搞定。平时我们要求函数的参数尽量不多于4 个,如果函数的参数多于4 个使用起来非常容易出错(包括每个参数的意义和顺序都容易弄错),效率也会降低(与具体CPU 有关,ARM芯片对于超过4 个参数的处理就有讲究,具体请参考相关资料)。这个时候,可以用结构体压缩参数个数。
在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。
经验不足的开发人员往往将所有需要传送的内容依顺序保存在char 型数组中,通过指针偏移的方法传送网络报文等信息。这样做编程复杂,易出错,而且一旦控制方式及通信协议有所变化,程序就要进行非常细致的修改,非常容易出错。这个时候只需要一个结构体就能搞定。平时我们要求函数的参数尽量不多于4 个,如果函数的参数多于4 个使用起来非常容易出错(包括每个参数的意义和顺序都容易弄错),效率也会降低(与具体CPU 有关,ARM芯片对于超过4 个参数的处理就有讲究,具体请参考相关资料)。这个时候,可以用结构体压缩参数个数。
【为什么要有struct关键字】相关文章
2. 若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti
3. 声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
4. Can a struct inherit from another struct? (结构体能继承结构体吗)
5. String s = new String(“xyz”);创建了几个String Object?
6. 有abstract方法的类一定要用abstract修饰吗
7. 构造器Constructor是否可被override?
10. Can a struct inherit from another class? (结构体能继承类吗)
本文来源:https://www.mianshiwenti.com/a13121.html
进入下载页面
上一篇:递归计算如下递归函数的值(斐波拉契)
下一篇:为什么会有内存对齐
﹝为什么要有struct关键字﹞相关内容
- struct和class的区别
- struct与class的区别
- Oracle的内存结构(Memory structures)
- String、StringBuffer、StringBuilder有区别
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- GC是什么?为什么要有GC?
- STP协议的主要用途是什么?为什么要用STP
- Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
- Java里面StringBuilder和StringBuffer有什么区别
- static关键字的用法