Определить размерность типа int на контроллере
Можно ли написать какую-нибудь функцию, чтобы узнать размерность типа int
на конкретном контроллере?
Источник: Stack Overflow на русском
Можно ли написать какую-нибудь функцию, чтобы узнать размерность типа int
на конкретном контроллере?
Вот так можно посчитать кол-во бит в байте,
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;
}