小编moh*_*549的帖子

在 c 中转换整个指针后是否有必要转换指针的各个索引?为什么?

在下面的代码中,ip 地址被转换为 uint8_t *。但下面再次将强制转换指针的每个索引强制转换为 uint8_t。程序员为什么要这样做呢?如果我们删除初始演员之后的所有演员,会有什么不同吗?此代码将 IPv4 IP 地址转换为 IP 号码。谢谢

uint32_t Dot2LongIP(char* ipstring)
{
    uint32_t ip = inet_addr(ipstring);
    uint8_t *ptr = (uint8_t *) &ip;
    uint32_t a = 0;

    if (ipstring != NULL) {
        a =  (uint8_t)(ptr[3]);
        a += (uint8_t)(ptr[2]) * 256;
        a += (uint8_t)(ptr[1]) * 256 * 256;
        a += (uint8_t)(ptr[0]) * 256 * 256 * 256;
    }
    return a;
}
Run Code Online (Sandbox Code Playgroud)

c c++ pointers casting

-3
推荐指数
1
解决办法
122
查看次数

标签 统计

c ×1

c++ ×1

casting ×1

pointers ×1