Программирование на C и C++

Онлайн справочник программиста на C и C++

Оператор sizeof

sizeof - это унарный оператор, возвращающий длину в байтах переменной или типа, помещенных в скобки. Например:

float f;
printf("%f ", sizeof f);
printf("%d", sizeof(int));

выдает 4 2. (Предполагается использование 16-битных целых.)

Помните, что для вычисления размера типа следует поместить имя типа в круглые скобки. В этом нет необходимости для имен переменных.

Использование sizeof помогает создавать переносимый код для тех случаев, когда код зависит от размера стандартных типов данных С. Например, представим, что программе, работающей с базой данных, необходимо сохранять 6 целочисленных значений в записи. Для того, чтобы сделать эту программу переносимой, не следует предполагать, что размер целочисленного типа - 2 или 4 байта, следует самостоятельно определить настоящую длину, используя sizeof. Следующая подпрограмма может быть использована для сохранения записи в файле:

/* Запись записи в файл */

void put_rec(FILE *fp, int rec[6])
{
int size, num;
size = sizeof(int) * 6;
num = fwrite(rec, size, 1, fp) ;
if(num!=1) printf("ошибка записи");
}

Самое главное в этом примере то, что put_rec() будет компилироваться и корректно запускаться на любом компьютере, включая компьютеры, использующие 2- и 4-байтные целые.