Size: a a a

2020 January 07

CC

Cool Cooler in C++ Together 2.0
Верный код?
источник

CC

Cool Cooler in C++ Together 2.0
#include <iostream>

using namespace std;

int main()
{
   unsigned short number = 0xAABB; // a 2 digit number
   unsigned char start = *((unsigned char*)(&number));
   if (start == 0xAA)
   {
       cout << "It's Big-endian" << endl;
   }
   else if (start == 0xBB)
   {
       cout << "It's Little-endian" << endl;
   }
   else
   {
       cout << "It's Weird-endian" << endl;
   }
   return 0;
}
источник

CC

Cool Cooler in C++ Together 2.0
Он должен проверять, является моя конфигурация Big-endian или Little-endian.
источник

TS

Till Schneider in C++ Together 2.0
Cool Cooler
#include <iostream>

using namespace std;

int main()
{
   unsigned short number = 0xAABB; // a 2 digit number
   unsigned char start = *((unsigned char*)(&number));
   if (start == 0xAA)
   {
       cout << "It's Big-endian" << endl;
   }
   else if (start == 0xBB)
   {
       cout << "It's Little-endian" << endl;
   }
   else
   {
       cout << "It's Weird-endian" << endl;
   }
   return 0;
}
в 20м стандарте делается в одну строчку.
источник

CC

Cool Cooler in C++ Together 2.0
Till Schneider
в 20м стандарте делается в одну строчку.
Как?
источник

CC

Cool Cooler in C++ Together 2.0
Падажжи
источник

TS

Till Schneider in C++ Together 2.0
источник

CC

Cool Cooler in C++ Together 2.0
И я мог в одну строчку
источник

CC

Cool Cooler in C++ Together 2.0
Прост было бы некрасиво и нечитабельно
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
#include <iostream>

using namespace std;

int main()
{
   unsigned short number = 0xAABB; // a 2 digit number
   unsigned char start = *((unsigned char*)(&number));
   if (start == 0xAA)
   {
       cout << "It's Big-endian" << endl;
   }
   else if (start == 0xBB)
   {
       cout << "It's Little-endian" << endl;
   }
   else
   {
       cout << "It's Weird-endian" << endl;
   }
   return 0;
}
думаю,
if (start == 0xAA) {
 // LE
} else {
 // BE
}

хватит
источник

🦊

🦊fox.cpp in C++ Together 2.0
weird-endian - это сверх)
источник

f&

fox.py &>/dev/null in C++ Together 2.0
🦊fox.cpp
weird-endian - это сверх)
std::cerr << "БЛЯДЬ: Control flow reached unreachable code" << std::endl;
std::terminate();
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
weird-endian - это сверх)
На всякий случай
источник

🦊

🦊fox.cpp in C++ Together 2.0
⟩ gcc -std=c99 -dM -E - < /dev/null | grep "ORDER"
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_PDP_ENDIAN__ 3412
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

Там у GCC есть пара макросов.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Только тсс, я о них тебе не говорил
источник

f&

fox.py &>/dev/null in C++ Together 2.0
🦊fox.cpp
Только тсс, я о них тебе не говорил
Слыш, gcc это не стандарт.
источник

🦊

🦊fox.cpp in C++ Together 2.0
fox.py &>/dev/null
Слыш, gcc это не стандарт.
правда?)
источник

🦊

🦊fox.cpp in C++ Together 2.0
ну -std=c++20 тогда
источник

f&

fox.py &>/dev/null in C++ Together 2.0
🦊fox.cpp
правда?)
Я буду жаловаться в комитет!
источник

🦊

🦊fox.cpp in C++ Together 2.0
источник