c++ - 两个结构的顺序

标签 c++ c ansi

我有这两个结构...

typedef struct{
    MY_SECOND_STRUCT  s1;
}MY_FIRST_STRUCT;


typedef struct{
    int s1;
}MY_SECOND_STRUCT;

我更喜欢这个顺序,我不想调换它们。 但是编译器目前不知道 MY_SECOND_STRUCT,我得到错误

error: expected specifier-qualifier-list before 'MY_SECOND_STRUCT'

我试过在顶部添加声明

struct MY_SECOND_STRUCT;

也将定义更改为

typedef struct{
    struct MY_SECOND_STRUCT  s1;
}MY_FIRST_STRUCT;

但这并没有帮助。

最佳答案

I prefer this order, I dont want to switch them.

你必须切换它们。

如果 MY_FIRST_STRUCT 有一个类型为 MY_SECOND_STRUCT 的成员变量,那么 MY_SECOND_STRUCT 必须在定义之前被定义和完成(不仅仅是声明和不完整) MY_FIRST_STRUCT 的。

关于c++ - 两个结构的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984997/

相关文章:

java - 将 XMI 文件导入 XML 项目错误 : Invalid byte 1 of 1-byte utf-8 sequence

c++ - 获取背包 DP 矩阵中的选定项目列表

关于模板化类型和类层次结构的 C++ 函数重载解析

c - 编写代码以在适当的位置反转 C 风格的字符串

c - 具有副作用的可变长度数组参数大小表达式

c - select() 遇到问题

cmd - 如何在 WinXP cmd shell 中加载 ANSI 转义码或获取彩色文件列表?

c++ - 类型线性谱系中最低的共同祖先

c++ - 最小化 map<string, string> 的双端队列中连续相等提取的次数

c - 在数组中有效存储数据