返回类型之前的C ++ 11结构

时间:2014-02-18 09:52:31

标签: c++ c++11

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

A.H

struct foo {
...
}

b.cpp

struct foo make_foo(){
...
}

我已经检查过,代码在函数返回类型之前没有'struct'就能很好地工作。它的目的是什么?

谢谢, Orwe

2 个答案:

答案 0 :(得分:2)

在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()
{
}

答案 1 :(得分:1)

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