【问题标题】:C++11 struct before return type [duplicate]返回类型之前的C ++ 11结构[重复]
【发布时间】:2014-02-18 09:52:31
【问题描述】:

在一个地方我找到了以下代码:

啊。

struct foo {
...
}

b.cpp

struct foo make_foo(){
...
}

我已经检查过,在函数返回类型之前没有“结构”的情况下,代码运行良好。它的目的是什么?

谢谢, 奥维

【问题讨论】:

  • 没有。这是一种 C 主义。
  • 在 C++ 中你不必写 struct

标签: c++ c++11


【解决方案1】:

在C代码中,需要struct来引用类型; foo 还不够。在 C++ 中,它不是必需的,但不会中断。

这就是为什么你会经常看到 C 代码写这样的东西:

typedef struct foo
{
} foo;

// This now works - foo is a complete type defined to be struct foo
foo make_foo()
{
}

【讨论】:

    【解决方案2】:

    这是一个 C 残留物。它在 C++ 中是多余的,但它仍然为向后兼容而编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多