当您定义如下结构时
typedef struct num {
int a;
int b;
} A;
那么 sizeof(A)
有效,但 sizeof(num)
无效。谁能解释一下 sizeof 运算符不接受 num
的原因吗?
最佳答案
因为 num
本身并不构成 C 中的类型(仅 struct num
或其 typedef A
构成类型)。因此,sizeof
失败,因为它的操作数不是它定义的任何一种形式:
sizeof unary-expression
sizeof ( type-name )
即num
既不是类型,也不是一元表达式。
因此,sizeof(struct num)
或 sizeof(A)
可以,但 sizeof(num)
则不然。
关于c - 作为 sizeof 操作数的结构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39788896/