// -1 <=> a < b, 0 <=> a == b, 1 <=> a > b
int cmp(T a, T b)
{
T top;
if (a == b)
return 0;
top = ((T)1) << (sizeof(T) * 8 - 1 - clz(a ^ b));
n = popcnt(a & (-top << 1));
if (n & 1)
return (a & top) ? -1 : 1;
else
return (a & top) ? 1 : -1;
}
bootstrapping - тема тонкая
ресурсы, где можно подробней об этом почитать?
memset(&usr, 0, sizeof(user_t));
.user_t usr = {0};
то-есть нужно вручную написать функцию для перевода текста в управляющий символ?
cheremsha11, не только. tput -- часть ncurses.