笔试题,这到底要考的是什么知识点?
问题:
用C去描述下面数据结构的形式:
字段 内存字节
版本信息 2
数据总长度 4
数据内容 内容的长度
可选数据长度 2
可选消息内容 内容的长度
数据包的标志 4
校验码 2
笔试时,我就直接用C的形式封装一个结构体算是解答完了,可面试官问我这题到底想考的是什么知识点,我说就是这么封装下,他说不是,请问下,这到底想考的是什么知识点呀!!!
[解决办法]
考虑内存对齐
[解决办法]
内存对齐问题吧!这样有利于数据的接收和发送的。
[解决办法]
#pragma pack(push,1)struct PACK { unsigned short int ver ;//版本信息 2 unsigned int tlen ;//数据总长度 4 unsigned char data[0];//数据内容 内容的长度} pack;struct OPTION { unsigned short int olen ;//可选数据长度 2 unsigned char odat[0];//可选消息内容 内容的长度};struct TAIL { unsigned int falg ;//数据包的标志 4 unsigned short int crc ;//校验码 2};#pragma pack(pop)
[解决办法]
结构体对齐,大小端的问题即字节序的问题。
[解决办法]