【问题标题】:What's the difference between these two declarations? [duplicate]这两个声明有什么区别? [复制]
【发布时间】:2016-05-08 22:35:15
【问题描述】:

我只是在 C++ 的上下文中询问。

struct x1 { ... };
typedef struct { ... } x2;
int main()
{
    x1 a;
    x2 b;
}

【问题讨论】:

  • 在 C++ 中,没有区别(但在 C 中)

标签: c++


【解决方案1】:

第一个定义了一个名为x1的类。

第二个定义了一个未命名的类,还定义了一个类型别名,名称为x2

C++ 中的差异非常细微。您可以通过尝试使用相同名称声明函数来观察差异:

void x1(); // OK
void x2(); // not OK, redefined as a different type of symbol

在实践中,您应该避免在同一个命名空间中定义与类同名的函数,因此这种差异几乎不会出现。第一个通常是首选,因为它更简单。

在 C 中,difference 会稍微影响标识符的使用。

【讨论】:

    猜你喜欢
    • 2020-07-22
    • 2015-12-22
    • 2015-06-07
    • 2012-04-01
    • 2015-02-17
    • 2016-08-01
    • 1970-01-01
    相关资源
    最近更新 更多