写出下面 C 函数的代码,它会返回一个无符号值,其中参数 x 的字节 i 被替换成字节 b

来源:互联网 发布:淘宝订单险开通条件 编辑:程序博客网 时间:2024/05/18 03:28

方法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;  }  


原创粉丝点击