我試圖寫這兩個原型C函數:試圖利用小端和大端與十六進制輸入
int extract_little (char* str, int ofset, int n);
int extract_big(char* str, int ofset, int n);
現在總的想法是,我需要從開始這兩種格式返回一個字節的整數地址str + ofset。附:奧斯特什麼也沒有做,我計劃(試圖)通過一個偏移量來對內存進行洗牌,一旦我找出那個小端,那個大端。
我試圖讓它像這樣輸出;小端,基於斷i=0xf261a3bf;
, 爲0xBF 0xA3執行0x61 0xf2
int main()
{
int i = 0xf261a3bf;
int ofset = 1; // This isn't actually doing anything yet
int z;
for (z = 0; z < sizeof(i); z++){
printf("%x\n",extract_little((char *)&i,ofset, sizeof(i)));
}
return 0;
}
int extract_little(char *str,int offs, int n) {
int x;
for (x = 0; x < n; x++){
return str[x];
}
}
的我不知道什麼嘗試。我想通了很難的方式,甚至認爲我把它放在for循環中,我仍然不能從返回中返回超過1的值。
謝謝!
累積循環內的返回值,然後在最後返回。 – Useless
我該如何去積累一個數組? – bonkerz11
一個SSCCE和一個例子會有所幫助。例如,對於給定的代碼,'extract_little()'總是會返回'str [0]'。 http://www.sscce.org/ – Arun