在C ++函数签名中使用struct是否定义明确?

时间:2018-08-10 03:11:31

标签: c++ language-lawyer

这个问题与另一个问题类似,但比另一个问题更具体:

using struct keyword in variable declaration in C++

考虑以下程序:

#include <stdio.h>

struct Foo {
    int x;
    int y;
};

Foo getFoo() {
    Foo foo;
    return foo;
}

int main(){
    getFoo();
}

以上程序使用g++进行编译,而不使用gcc进行编译。

我们可以对程序进行如下修改,以使其同时与gccg++一起编译:

#include <stdio.h>

struct Foo {
    int x;
    int y;
};

struct Foo getFoo() {
    struct Foo foo;
    return foo;
}

int main(){
    getFoo();
}

在标准中,这种使用struct关键字是否可以在C ++中得到明确定义吗?

1 个答案:

答案 0 :(得分:4)

是的。这就是所谓的elaborated-type-specifier