簡體   English   中英

詞典/ LUT在C中的實現

[英]Dictionary/LUT implementation in C

我有500個幀,因為幀是按升序排列的,所以我將每個幀的長度存儲在數組中。

const char header_length = {23,34, 45, 12, 23,56,......,2,4};

在這里,幀1的長度為23個字節,幀2的長度為34個字節。 現在,當我被請求帶有標題4的幀時,我將不得不以帶有標題7的幀進行答復,帶有標題8的幀將需要帶有標題60的答復幀。該相互關系是一個常數,標題4的幀將始終答復標題7的幀。 。 因此,我需要在此處查找表排序的實現。 我計划使用多維數組來實現這一點。 盡管有更好的方法來實現這一點?

我是根據上述OP的評論回答的,否則OP的問題就沒有任何意義。

假設最大幀大小受相當小的N限制,那么最好保留另一個數組,如下所示,

const char header_length[] = {23,34, 45, 12, 23,56,......,2,4};
const int to_be_replied[N+1] = {...,0,...,2,...,0,...,4,...}; /* fill remaining */
/* here are their positions        @12   @23    @34  @45  */ 

並在回復時使用以下內容。

int frame_num, reply_frame_num;
frame_num = get_frame_number(); /* some function */
reply_frame_num = to_be_replied[header_length[frame_num]];

暫無
暫無

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

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