我只是在C ++语境中提问。
struct x1 { ... };
typedef struct { ... } x2;
int main()
{
x1 a;
x2 b;
}
答案 0 :(得分:4)
第一个定义名为x1
的类。
第二个定义了一个未命名的类,并定义了一个类型别名,名称为x2
。
C ++中的差异非常微妙。您可以通过尝试使用相同的名称声明函数来观察差异:
void x1(); // OK
void x2(); // not OK, redefined as a different type of symbol
在实践中,您应该避免使用与同一名称空间中的类相同的名称来定义函数,因此几乎不会出现这种差异。第一个通常是首选,因为它更简单。
在C中,difference会更多地影响标识符的使用。