C只有一个节点的多结构

C只有一个节点的多结构,c,data-structures,struct,nodes,C,Data Structures,Struct,Nodes,在玩杂耍并试图学习如何完成这项任务后,我想是时候问问专家了 我有不止一个结构,并且只想使用一个节点“操纵”其中的数据 最好的方法是什么 代码示例: typedef struct printQuality{ int dpi; } quality ; typedef struct paperSize{ char* dim; } sizes ; //this would be A3 , A4 this is why i picked char typedef struct printC

在玩杂耍并试图学习如何完成这项任务后,我想是时候问问专家了

我有不止一个结构,并且只想使用一个节点“操纵”其中的数据

最好的方法是什么

代码示例:

typedef struct printQuality{ int dpi; } quality ;
    typedef struct paperSize{ char* dim; } sizes ; //this would be A3 , A4 this is why i picked char
    typedef struct printColour{ char* color; } colors;
    typedef struct printStyle{ char* side; } sides;
    typedef struct printOrientation { char* orientation; } orientations;

typedef union printOptions{
    quality dpi;
    sizes size;
    colors color;
    sides side;
    orientations orientation;

} options;

struct optNode{
    options* inf;
    optNode* next;
    optNode* prev;
};

从您的评论中,我相信您的问题与C vs结构中的联合行为有关。在C/C++中,联合是一种在给定时间只能实例化其中一个值的结构。使用printOptions联合,您有5个变量。在任何给定的时间,这些变量中只有一个(您设置的最后一个)保证保持值。下面是一篇关于工会如何运作的好文章:。C/C++中的结构没有这种行为。在结构实例超出范围或被删除之前,您设置的任何值都将保持设置状态。我认为,如果您将printOptions设置为一个结构,您将能够从optNodes中的选项指针访问所有其他结构

请给出代码示例什么工作/不工作请您的问题提供更多关于您所问问题的详细信息。当您这样做时,请记住,我们无法从我们坐的位置读取您的想法或看到您的屏幕,因此我们唯一可以获得的信息是您在问题中输入的内容。问题编辑类型定义结构?所以你正在编写C代码,为什么要使用C++标签?通过对任何导致错误的内容进行注释,使其可编译。用散文形式写下这些事情应该达到的目的。请确保包含一些代码来演示您打算如何使用奇特的结构类型。事实上,这似乎是解决我的问题的可行方案。现在,我有了专家们的意见。非常感谢。