首页 > 其他 > 详细

2.60 替换指定字节数据

时间:2020-05-08 22:50:17      阅读:35      评论:0      收藏:0      [点我收藏+]

//csapp 2.60

#include <stdio.h>                                                                                                                         
#include <inttypes.h>

typedef unsigned char * char_point;

uint32_t replace_byte(uint32_t x, int i, unsigned char b)
{
    if(i > 3 || i < 0) {
        return -1;
    }

    char_point char_date_point = ((char_point) &x) + i;

    *char_date_point = b;

    printf("result : %X\r\n", x);
    return x;
}

int main(void)
{
    unsigned char replace_data = 0xAB;

    uint32_t x = 0x12345678;
    uint32_t  r_x = 0x12AB5678;
    int i_x = 2;


    uint32_t  y = x;
    uint32_t r_y = 0x123456AB;
    int i_y = 0;

    printf("r_x == result : %d\r\n", r_x == replace_byte(x, i_x, replace_data));
    printf("r_y == result : %d\r\n", r_y == replace_byte(y, i_y, replace_data));

    return 1;
}

2.60 替换指定字节数据

原文:https://www.cnblogs.com/LonelyTraveler/p/12853105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!