@Nikc7777

Солько бит имеет макрос CHAR_BIT?

Во многих источниках пишется, что макрос CHAR_BIT имеет один восьмибитый байт. В приведенном ниже примере, это не совсем истина, скорее совсем не истина.
#include <stdio.h>
#include <limits.h>

int main(void){
  char size = CHAR_BIT * sizeof(char);
  printf("%lu\n", sizeof(char));
  printf("%lu\n", sizeof(CHAR_BIT));
  printf("%u\n", size);
  return 0;
}

byte 1 
   4 
   8

Можно ли использовать функцию sizeof(), в подобных случаях для проверки или верить стандартам, о том что CHAR_BIT имеет восемь бит.
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
@galaxy
CHAR_BIT - макрос, количество бит в char'е. По стандарту не меньше 8 (но вполне может быть больше).
sizeof(char) = 1 по определению (sizeof измеряет все в char'ах)
sizeof(CHAR_BIT) - учитывая, что CHAR_BIT определен примерно как #define CHAR_BIT 8, тут вы вычисляете sizeof(int)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы