【发布时间】:2014-02-18 09:52:31
【问题描述】:
在一个地方我找到了以下代码:
啊。
struct foo {
...
}
b.cpp
struct foo make_foo(){
...
}
我已经检查过,在函数返回类型之前没有“结构”的情况下,代码运行良好。它的目的是什么?
谢谢, 奥维
【问题讨论】:
-
没有。这是一种 C 主义。
-
在 C++ 中你不必写
struct。
在一个地方我找到了以下代码:
啊。
struct foo {
...
}
b.cpp
struct foo make_foo(){
...
}
我已经检查过,在函数返回类型之前没有“结构”的情况下,代码运行良好。它的目的是什么?
谢谢, 奥维
【问题讨论】:
struct。
在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()
{
}
【讨论】:
这是一个 C 残留物。它在 C++ 中是多余的,但它仍然为向后兼容而编译。
【讨论】: