0

我知道决定 PC 是否是小端序的非元编程方式。

例如:

#include <iostream>
#include <stdint.h>

union A { 
    uint16_t v;
    char c[2];
};  

int main(void) {
    A a;
    a.v = 0x0102;
    std::cout << (a.c[0] == 0x01 ? "big endian" : "little endian") << std::endl;

    return 0;
}

但是,它的运行时间很昂贵,不是吗?

那么,有没有办法通过元编程来确定 PC 是否是小端?

谢谢!

4

1 回答 1

0

该语言中没有任何内容要求目标计算机完全采用大端或小端。事实上,一些架构允许软件在运行时选择字节序。有些甚至允许每页字节序选择。

模板元程序不可能对这些东西一无所知。

于 2012-10-13T11:35:43.610 回答