Как я могу знать размер всего типа данных в моем компьютере?
Следующая программа должна помочь с примитивными типами:
#include <stdio.h>
int main()
{
printf("sizeof(char) = %d\n", sizeof(char));
printf("sizeof(short) = %d\n", sizeof(short));
printf("sizeof(int) = %d\n", sizeof(int));
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(long long) = %d\n", sizeof(long long));
printf("sizeof(float) = %d\n", sizeof(float));
printf("sizeof(double) = %d\n", sizeof(double));
printf("sizeof(long double) = %d\n", sizeof(long double));
return 0;
}
Она печатает количество «байтов», используемых типом, с sizeof (char) == 1
по определению. То, что означает 1 (то есть сколько битов), зависит от конкретной реализации и, вероятно, зависит от базового оборудования. Например, некоторые машины имеют 7-битные байты, некоторые - 10 или 12-битные байты.
Вы можете применить sizeof
к каждому типу, размер которого вам нужно знать, а затем вы можете вывести результат.
sizeof(T)
выдаст вам размер любого переданного ему типа. Если вы пытаетесь узнать размер всех типов данных, используемых или определенных в конкретной программе, вы не сможете этого сделать - C не сохраняет информацию такого уровня при компиляции.
Используйте sizeof
для получения размера типа переменной (измеряется в байтах).
Например:
#include
sizeof(int32_t)
вернет 4
sizeof(char)
вернет 1
int64_t a;
sizeof a;
вернет 8
См. http://publications. gbdirect.co.uk/c_book/chapter5/sizeof_and_malloc.html