2012-09-13 53 views
-3

一个替代函数编写将返回在其中xi个字节已经取代b值的函数:如何编写C

unsigned replace_f (unsigned x, int i, unsigned char b){ 

} 

EX:replace_f(0x12345678, 2, 0xBC) --> 0x12BC5678

+3

你能告诉我们你到目前为止尝试过吗?也许我们可以指出它的错误。 – Mysticial

+0

嗯,我是C新手,所以我不知道从哪里开始。 – sebi

+1

@sebi:虽然我们总是乐意帮助您解决具体问题,但我们大多数人没有时间教您一门语言 - 这基本上就是您所要求的。请花一些时间先了解C,然后随时回来,找出我们可以帮助您的具体问题。 – Mac

回答

1
unsigned replace_f (unsigned x, int i, unsigned char b){ 
    unsigned char *place = (unsigned char*)&x; 
    place[sizeof(int)-i] = b; 
    return x; 
} 

ASSU我小endian

+3

你应该注意,你假设小端 – wich

1

没有尝试一下,不过这可能是工作:

unsigned replace_f (unsigned x, int i, unsigned char b){ 
    char *c; 

    c = (char *)&x; 
    c[i] = b; 
    return x; 
} 
+2

你应该注意,你认为大endian – wich

+0

yee ..我应该,但我也认为x86:D – Pyjong

+0

不,你不知道。 x86是小端,这不是你的代码支持 – wich