我正在处理以下结构:
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(字节)?一旦我将实际数据读入"数据"成员,"数据"成员是否代表实际数据,还是只是指向它的指针?谢谢!
这是一个byte大小的数组MAX_DATA_BUFFER_SIZE; 它不是指针,数据直接存储在struct.
当您复制struct(例如,将其作为普通参数传递给函数)时,数据也将被复制,因为它是数据的一部分struct.
(顺便说一句,将数组嵌入到structC中是通过值将数组传递给函数的唯一方法)