Есть ли способ в runtime кроссплатформенно, для любого С/С++ компилятора, определить l/r endian для всех интегральных типов, включая указатель?
Пока что у меня на уме два способа, первый простой — переложить это на пользователя посредством определения соответствующего define, но это потребует открытия исходного кода библиотеки (либо её части).
Второй не менее тупой, что то вроде (код писал прямо на месте):
long l = 10;
_asm {
push l;
}
byte check;
_asm {
pop check;
}
if( check = 10 )
{
//left endian
}
else
{
//right endian
}
Что мне тоже не нравится так как это сделать с float Я пока не в курсе, разве что сравнивать с заранее подготовленным шаблоном.
p.s.
Сори если вопрос покажется глупым. Возможно я не всё ещё понимаю до конца правильно.