Вы уверены, что хотите количество бит, а не количество байтов? В C для данного типа T
вы можете найти количество байтов, которое требуется, используя оператор sizeof
. Количество битов в байте равно CHAR_BIT
, что обычно равно 8, но может быть другим.
Итак, для типа T
число битов в объекте типа T
равно:
#include <limits.h>
size_t nbits = sizeof(T) * CHAR_BIT
Обратите внимание, что, за исключением типа unsigned char
, все возможные комбинации nbits
битов, приведенных выше, могут не представлять действительное значение типа T
.
Во второй части обратите внимание, что вы можете применить оператор sizeof
к объекту, а также к типу. Другими словами, для данного типа T
и объекта x
такого типа:
T x;
Размер T можно найти на sizeof(T)
, а размер x
на sizeof x
. Скобки не обязательны, если для объекта используется sizeof
.
Учитывая приведенную выше информацию, вы сможете ответить на второй вопрос. Спросите еще раз, если у вас все еще есть проблемы.