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-байтные целые.