C struct语法中的括号

Ale*_*xei 2 c struct

我正在处理以下结构:

typedef PACKED struct {
   word         len;                 /* # of bytes to log (including len)*/
   word          type;                /* What kind of data is in this pkt */
   qword         time;                /* What time it was generated       */
   byte           data[MAX_DATA_BUFFER_SIZE];
} log_mobile_data_type;
Run Code Online (Sandbox Code Playgroud)

我的问题是,结构的最后一个成员究竟是什么?是一个大小等于MAX_DATA_BUFFER_SIZE的成员,还是只有1(字节)?一旦我将实际数据读入"数据"成员,"数据"成员是否代表实际数据,还是只是指向它的指针?谢谢!

Mat*_*lia 9

这是一个byte大小的数组MAX_DATA_BUFFER_SIZE; 它不是指针,数据直接存储在struct.

当您复制struct(例如,将其作为普通参数传递给函数)时,数据也将被复制,因为它是数据的一部分struct.

(顺便说一句,将数组嵌入到structC中是通过值将数组传递给函数的唯一方法)