static_assert(sizeof(char) == 1, "sizeof(char) != 1");
union U1
{
int i;
char c[sizeof(int)];
};
union U2
{
char c[sizeof(int)];
int i;
};
constexpr U1 u1 = {1};
constexpr U2 u2 = {{1}};
constexpr bool IsLittleEndian ()
{
return u1.i == u2.c[0];
}
int main ()
{
static_assert(IsLittleEndian(), "The machine is BIG endian");
}
c3RhdGljX2Fzc2VydChzaXplb2YoY2hhcikgPT0gMSwgInNpemVvZihjaGFyKSAhPSAxIik7CnVuaW9uIFUxCnsKICBpbnQgaTsKICBjaGFyIGNbc2l6ZW9mKGludCldOwp9OyAgCnVuaW9uIFUyCnsgCiAgY2hhciBjW3NpemVvZihpbnQpXTsKICBpbnQgaTsKfTsgIAogICAgCmNvbnN0ZXhwciBVMSB1MSA9IHsxfTsKY29uc3RleHByIFUyIHUyID0ge3sxfX07CmNvbnN0ZXhwciBib29sIElzTGl0dGxlRW5kaWFuICgpCnsgCiAgcmV0dXJuIHUxLmkgPT0gdTIuY1swXTsKfSAgIAogIAppbnQgbWFpbiAoKQp7IAogIHN0YXRpY19hc3NlcnQoSXNMaXR0bGVFbmRpYW4oKSwgIlRoZSBtYWNoaW5lIGlzIEJJRyBlbmRpYW4iKTsKfQo=