2016-10-04 121 views
-2

我正在研究一個具有3個參數的函數。其中一個參數是輸入數組的字節長度。它是一個int,所以如果length = 4,那麼它就是說輸入數組的長度是4個字節(輸入和輸出數組是另外兩個參數)。如果長度不是4的倍數,我們需要用零填充直到它爲止。我的TA告訴我,我應該從文件中讀取長度並將其存儲在一個字節數組中,然後告訴我應該用0x00填充它,直到它是四的倍數。這導致我到我的問題:從文件中讀取字節數組的數據

1)我怎麼聲明一個字節數組?
2)用零填充它像包含[...,0x00,0x00,0x00]一樣簡單,作爲數組中的元素?

+0

不,他沒有。他告訴你要讀長度,四捨五入,創建一個長度的字節數組,讀入數據,並在必要時用零填充字節數組, – EJP

+0

是的。我很高興你有能力澄清我對這項任務的改寫不足。 –

回答

0

我該如何聲明一個字節數組?

uint8_t array [size];

填充陣列

for (unsigned int i = 0; i < padding_size; ++i) 
{ 
    array[i] = 0; 
} 

另一種技術是在陣列設置到焊盤值,則其值更換必要的槽:

std::fill(&array[0], &array[size], 0); 
array[3] = value; 

如果性能結合,您可能想要展開循環並執行多個分配:

array[0] = 0; 
array[1] = 0x0; // Same as 0. 
array[2] = 0; 
array[3] = value; 

大多數計算機更喜歡處理數據指令。跳躍或分支往往會刺激他們,因爲他們需要花時間評估分支或跳躍。