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

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

Войти через центр авторизации
Похожие вопросы
Wanted. Санкт-Петербург
До 250 000 ₽
The One Новосибирск
До 250 000 ₽
Amex Development Санкт-Петербург
от 300 000 до 350 000 ₽
28 сент. 2024, в 17:23
10000 руб./за проект
28 сент. 2024, в 16:19
100000 руб./за проект