c++--大小端
·

判断机器大小端的方式
使用联合体
#include <stdio.h> #include <stdint.h> // 用于 uint32_t 和 uint8_t int isLittleEndian() { union { uint32_t i; // 4字节整数 uint8_t c[4]; // 4个单字节 } test = {0x12345678}; // 初始化一个测试值 // 如果低地址存储的是最低位字节(0x78),则是小端 return test.c[0] == 0x78; } int main() { printf("Is Little-Endian? %s\n", isLittleEndian() ? "Yes" : "No"); return 0; }
指针强转
#include <stdint.h> int isLittleEndian() { uint32_t num = 0x00000001; // 4字节数据 uint8_t *p = (uint8_t *)# // 转换为单字节指针 // 如果低地址存储的是最低位(0x01),则是小端 return *p == 0x01; }
更多推荐
所有评论(0)