C List:处理typedef

时间:2014-01-11 16:21:16

标签: c list

如果有办法用结构的typedef编写这段代码吗?

struct s_parola{
    char info[40];
    struct s_parola *next;
};

我尝试使用此代码,但这不正确:

typedef struct {
    char info[40];
    t_parola *next;
} t_parola;

谢谢

2 个答案:

答案 0 :(得分:2)

如果您的问题是您在结构中收到“未知类型s_parola”,那是因为您在定义之前尝试使用typedef。你可以改为:

typedef struct s_parola s_parola;

struct s_parola {
    char info[40];
    s_parola *next;
};

答案 1 :(得分:0)

这对我最有用:

struct _s_parola {
  char info[40];
  struct _s_parola *next;
};

typedef struct _s_parola s_parola;

int main() {
  s_parola p;
}

要在s_parola中使用s_parola作为类型,您需要使用struct 。不过,通过这种方式,您可以在程序中的任何其他位置使用s_parola而不使用struct

修改 @JamesReed的答案也有效,我只是不习惯使用

typedef struct s_parola s_parola;

可能100%好,但我不舒服。如果符合标准我真的很好奇。如果是的话,它比我的解决方案更好。 如果有人能回答会很棒。