有什么区别:使用关键字struct在相同类型的结构内创建结构指针

时间:2017-02-05 07:59:32

标签: c++ c oop struct

来自C ++背景。我需要为我的一门课程写C,这是我从未接触过的。这两个声明之间的区别是什么?为什么要包含struct关键字?有不同的含义吗?他们在C ++和C中有不同的含义吗?

struct A {
    int dataA;
    A* nextA;
};

struct B {
    int dataB;
    struct B* nextB;
};

下面的评论说第一个在C中无效。但是,我正在使用gcc进行编译。

enter image description here

编辑:我正在使用gcc编译.cpp文件。我是个小伙子哈哈。

解决方案:第二个是C所必需的,其中第一个仅在C ++中有效。

1 个答案:

答案 0 :(得分:2)

struct B {
    int dataB;
    B* nextB;
};

相同
struct B {
    int dataB;
    struct B* nextB;
};

在C ++中而不在C中。使用C时,您必须使用第二种形式。第一种形式不合法C.