1

在研究一些代码时,我遇到了以下结构:

/* 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可变长度的字符缓冲区?

4

1 回答 1

5

这似乎是一种叫做struct hack的东西。

于 2013-08-30T10:33:50.777 回答