小编fal*_*ojr的帖子

如何在C中将struct转换为char数组

我正在尝试将结构转换为char数组以通过网络发送.但是,当我这样做时,我从char数组得到了一些奇怪的输出.

#include <stdio.h>

struct x
{
   int x;
} __attribute__((packed));


int main()
{
   struct x a;
   a.x=127;
   char *b = (char *)&a;
   int i;
   for (i=0; i<4; i++)
      printf("%02x ", b[i]);
   printf("\n");
   for (i=0; i<4; i++)
      printf("%d ", b[i]);
   printf("\n");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是ax的各种值的输出(在使用gcc的X86上):
127:
7f 00 00 00
127 0 0 0

128:
ffffff80 00 00 00
-128 0 0 0

255:
ffffffff 00 00 00
-1 0 0 0

256:
00 01 00 00
0 1 0 0 …

c struct pointers char

9
推荐指数
4
解决办法
4万
查看次数

标签 统计

c ×1

char ×1

pointers ×1

struct ×1