gpt4 book ai didi

C++:将 int 转换为 unsigned char

转载 作者:行者123 更新时间:2023-11-28 00:21:29 25 4
gpt4 key购买 nike

我声明了一个 IP 地址:

int test_ip = (192) | (168<<8) | (33<<16) | (255<<24);

然后我需要将它转换为 (unsigned char*)。我正在尝试这样做:

(u_char*)test_ip

我使用 VS 2010 C++ 调试器来计算最后一个表达式。此表达式的调试器输出:

0xff21a8c0 <Bad Ptr>

我做错了什么?为什么 Ptr 不好?

最佳答案

您的转换最好由 in_addr 数据类型完成:

这是 windows in_addr,所以如果你想在 linux 上使用它,你必须用其他名称重新声明它。

typedef struct in_addr {
union {
struct {
u_char s_b[4];
} S_un_b;
struct {
u_short s_w[2];
} S_un_w;
u_long S_addr;
} S_un;
};

像这样:

in_addr address;
address.S_addr = (192) | (168<<8) | (33<<16) | (255<<24);

address.S_un_b.s_b 现在准备好了,4 个字节的数组表示地址...

关于C++:将 int 转换为 unsigned char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com