在研究某些代码时,我遇到了以下结构:
/* PACKET format:
*
* clientRandom - 20 byte buffer
* yLen - 4 bytes (LoHi integer)
* yData - yLen byte buffer
*
* Total length = 24 + yLen bytes
*/
typedef struct packetFormat
{
char clientRandom[20];
uint32 yLen;
char yData[1];
}packetFormat;
为什么第三个字段没有声明为char *yData
,因为它是一个可变长度的字符缓冲区?