最近看到有人赞扬另一个用户使用 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);
在我看来,第一组只是风格问题。但是在第二对行中,额外的第二个 * 很容易被混淆为乘法。