我试图写这两个原型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