一.目标:
由于数据的长度根据请求,而返回的数据长度会发生改变,这时定义一个变长数组就可以,使定义不同长度的数组来返回数据的问题变得简洁起来。
二.方法:
采用的结构体中0数组来处理该问题。
//定义长度结构体
typedef truct Line{
uint8_t length;
uint8_t contents[0];//在结构体中,数组为0的数组必须在最后声明,使 用上有一定限制
}Lines;
//结构体字节对其问题
//表示它后面的代码都按照n个字节对齐
#pragma pack(2)
typedef struct
{
int a;
char b;
}data_t;//或者__attribute__((packed)) data_t;
int main()
{
uint8_t length = 10, i;//外部需求长度
printf("sizeof(Line)=%d\n", sizeof(struct Line)