我有下面的交流程序,我想以特定的顺序发送一条 32 位消息,例如 0x00000001。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <stdint.h>
struct test
{
uint16_t a;
uint16_t b;
};
int main(int argc, char const *argv[])
{
char buf[4];
struct test* ptr=(struct test*)buf;
ptr->a=0x0000;
ptr->b=0x0001;
printf("%x %x\n",buf[0],buf[1]); //output is 0 0
printf("%x %x\n",buf[2],buf[3]); //output is 1 0
return 0;
}
然后我通过打印出 char 数组中的值来测试它。我在上面的评论中得到了输出。输出不应该是 0 0 和 0 1 吗?因为 but[3] 是最后一个字节?有什么我错过的吗?
谢谢!