#c #embedded
Можно ли написать какую-нибудь функцию, чтобы узнать размерность типа int на конкретном контроллере?
Ответы
Ответ 1
Вот так можно посчитать кол-во бит в байте, int CharBit() { unsigned char c = ~0U; int res = 1; for(; c >>= 1; ++res) {} return res; } а дальше (sizeof(int) * CharBit()). То есть кол-во char'ов и int'е умножить на кол-во битов в char'e равно кол-ву битов в int'e. Для x86: 4 * 8 = 32 Вот ещё: int IntBit() { int tmp = 0, res = 0; // 0xfffff... while(++res, tmp >>= 1) {} return res; }
Комментариев нет:
Отправить комментарий