typedef struct TAGCommonHeader
{
    uint8_t prefix[4];
    uint8_t data[0];
CommonHeader;
typedef struct TAGDataHeader
{
    uint8_t hash[4];
    uint32_t dataSize;
    uint8_t data[0];
DataHeader;

void ParseData(uint8_t* datasize_t length)
{
    CommonHeader* commonHeader = (CommonHeader*)data;
    if(commonHeader->prefix[0== 'P' && commonHeader->prefix[1== 'N' && commonHeader->prefix[2== 'G' && commonHeader->prefix[3== ' ')
    {
        DataHeader* dataHeader = (DataHeader*)commonHeader->data;
        for(uint32_t i = 0i < dataHeader->dataSize++i)
        {
            dataHeader->data[i];
        }
    }
}

이런 기능 나무위키에서 있다는 것만 들었지 실제로 쓰는 예를 본 적이 없는데 회사에서 처음 봄