Eu já vi dois estilos de uso sizeof
para operações relacionadas à memória (como em memset
ou malloc
):
sizeof(type)
esizeof variable
ousizeof(variable)
Qual deles você prefere, ou você usaria uma mistura dos dois estilos, e quando você usaria cada estilo? Quais são os prós e os contras de cada estilo e quando você os usa?
Como exemplo, posso ver o seguinte par de situações em que um estilo ajuda e o outro não:
Quando você errar o ponteiro indireto:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Quando o tipo muda:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */