方法1、
unsigned put_byte(unsigned x, unsigned char b, int i)
{
assert(i >= 0 && i < sizeof(unsinged));
return ~(0xFF << 8 * i) & x | (b << 8 * i);
}
方法2、
unsigned put_byte(unsigned x, unsigned char b, int i)
{
unsigned char* uchar_ptr;
assert(i>=0&&i<sizeof(unsigned));
uchar_ptr = (unsigned char*) &x;
uchar_ptr[sizeof(unsigned)-1-i] = b;
return x;
}
方法3、
unsigned put_byte(unsigned x, unsigned char b, int i)
{
unsigned char* uchar_ptr;
assert(i>=0&&i<sizeof(unsigned));
uchar_ptr = (unsigned char*) &x;
*(uchar_ptr + i) = b;
return x;
}