有啥区别:在同类型的结构体中用关键字struct创建结构体指针
Posted
技术标签:
【中文标题】有啥区别:在同类型的结构体中用关键字struct创建结构体指针【英文标题】:What's the difference: Creating structure pointer inside a structure of the same type with the keyword struct有什么区别:在同类型的结构体中用关键字struct创建结构体指针 【发布时间】:2017-02-05 07:59:31 【问题描述】:来自这里的 C++ 背景。我的一门课程要求我为我从未接触过的课程写 C。这两个声明之间有什么区别?为什么要包含 struct 关键字?有不同的含义吗?它们在 C++ 和 C 中有不同的含义吗?
struct A
int dataA;
A* nextA;
;
struct B
int dataB;
struct B* nextB;
;
下面的 cmets 说第一个在 C 中是无效的。但是,我用 gcc 编译得很好。
编辑:我正在用 gcc 编译一个 .cpp 文件。我真是个菜鸟哈哈。
解决方案:第二个对于 C 是必需的,而第一个仅在 C++ 中有效。
【问题讨论】:
第一个在C中无效 嗯.. 用 gcc 编译就好了。 嗯 ... nops ideone.com/A24jsZ :) gcc 编译 C 和 C++ 代码。在您的情况下,您的文件名test.cpp
表示 C++ 文件。
test.cpp
表示 C++。对 C 使用 test.c
【参考方案1】:
struct B
int dataB;
B* nextB;
;
和
一样struct B
int dataB;
struct B* nextB;
;
在 C++ 中,但不是在 C 中。使用 C 时,您必须使用第二种形式。第一种形式是不合法的 C.
【讨论】:
以上是关于有啥区别:在同类型的结构体中用关键字struct创建结构体指针的主要内容,如果未能解决你的问题,请参考以下文章