簡體   English   中英

用C編碼和解碼數據

[英]encode and decode data in C

我必須編寫一個對數據進行編碼並將其存儲到緩沖區中的C程序,以便以后對該緩沖區執行一些操作。 我有以下結構:

typedef uint64_t time64;
typedef int32_t sint32;

typedef struct
{
    sint32 latitude;
    sint32 longitude;
    int16_t elevation; 
}ThreeDLocation;

typedef struct
{
    uint8_t permission_indices;
    char* data;
    time64 expiry_time;
    ThreeDLocation generation_location;
}data;

我想將data結構編碼/解碼到單個緩沖區中。 我認為這稱為“序列化”和“反序列化”。

誰能給我一些如何解決這個問題的提示?

您可以嘗試將一個整數指向該結構並以這種方式讀出:

data blockdata;
int* serialdata;
int i;
int n = sizeof(data);
filldata(&blockdata);
serialdata = (int*)&blockdata;

for(i = 0; i < n; i++)
{
   globalbuffer[index++] = serialdata[i];
}

不確定這是否有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM