0

我想创建相当于:

   char* val = "\x11\x11\x11\x11";

使用 htole32() 函数。既然“\x11”是一个不可打印的字符,我该怎么做呢?

编辑

我将把 int 转换为 char* 并且我不想收到分段违规,如果我使用,我会得到:

    int val = 0x11111111;
4

1 回答 1

2

最终目标对我来说并不完全清楚,但您可以指定一个十六进制格式的整数:

uint32_t val = 0x11111111;

正如评论中所指出的,十六进制表示可以使用(或)作为格式说明符printf的函数族打印出来。从我可以从 OP 收集到的信息来看,这可能是您正在寻找的内容,但我并不完全确定。 %x%X

编辑以响应 OP 编辑​​:转换为char*. 如果您的意思是要将地址val转换为 char*(例如,char *ptr = (char*)&val;),那么这应该可以正常工作并允许您访问各个字节。

于 2012-05-27T22:02:43.190 回答