最近、誰かがsizeof(type)の代わりにsizeofvarを使用したことで別のユーザーを称賛しているのを見ました。私はいつもそれがただのスタイルの選択だと思っていました。大きな違いはありますか?例として、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);
私の意見では、最初のセットはスタイルの問題です。しかし、2番目の行のペアでは、余分な2番目の*は乗算と簡単に混同される可能性があります。