Недавно увидел, что кто-то благодарит другого пользователя за использование sizeof var вместо sizeof (type). Я всегда думал, что это всего лишь выбор стиля. Есть ли существенная разница? В качестве примера линии с f и ff считались лучшими, чем линии с g и gg:
typedef struct _foo {} foo;
foo *f = malloc(count * sizeof f);
foo *g = malloc(sizeof(foo) * count);
foo **ff = malloc(count * sizeof *ff);
foo **gg = malloc(sizeof(foo*) * count);
По моему мнению, первый набор - это всего лишь вопрос стиля. Но во второй паре строк дополнительная секунда * легко сбивается с толку для умножения.