Я видел два стиля использования sizeof
для операций, связанных с памятью (например, в memset
или malloc
):
sizeof(type)
, а такжеsizeof variable
илиsizeof(variable)
Какой из них вы бы предпочли, или вы бы использовали сочетание двух стилей, и когда бы вы использовали каждый стиль? Каковы плюсы и минусы каждого стиля и когда вы их используете?
В качестве примера я вижу следующую пару ситуаций, когда один стиль помогает, а другой нет:
Если вы неправильно указали косвенность указателя:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Когда тип меняется:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */