【发布时间】:2016-05-08 22:35:15
【问题描述】:
我只是在 C++ 的上下文中询问。
struct x1 { ... };
typedef struct { ... } x2;
int main()
{
x1 a;
x2 b;
}
【问题讨论】:
-
在 C++ 中,没有区别(但在 C 中)
标签: c++
我只是在 C++ 的上下文中询问。
struct x1 { ... };
typedef struct { ... } x2;
int main()
{
x1 a;
x2 b;
}
【问题讨论】:
标签: c++
第一个定义了一个名为x1的类。
第二个定义了一个未命名的类,还定义了一个类型别名,名称为x2。
C++ 中的差异非常细微。您可以通过尝试使用相同名称声明函数来观察差异:
void x1(); // OK
void x2(); // not OK, redefined as a different type of symbol
在实践中,您应该避免在同一个命名空间中定义与类同名的函数,因此这种差异几乎不会出现。第一个通常是首选,因为它更简单。
在 C 中,difference 会稍微影响标识符的使用。
【讨论】: