首页 文章

函数的Typedef结构指针(C)

提问于
浏览
0

我试图将一个typedef结构指针传递给一个函数,编译器正在抱怨此错误消息: error: unknown type name ‘RootP’. 这是代码...

int main()
{
    typedef struct Root
    {
        struct Root *child;
    }*RootP;
    RootP rootNode = malloc(sizeof(struct Root));
    rootNode->child = NULL;
    ....

}

void mkdir(RootP rootNode, char param2[60], char pwd[200])
{
    ...
}

1 回答

  • 5

    struct 应该在 main 之外,所以移动

    typedef struct Root
    {
        struct Root *child;
     }*RootP;
    

    main 函数之前 . 如果程序足够大,请考虑将其移动到某个头文件中( *.h

    我会避免使用 mkdir 名称 . 它在Posix中定义,在Linux上是指mkdir(2)系统调用 .

    我不认为 typedef struct Root *RootP; 是漂亮的代码:你通常希望一眼看出什么是C指针 . 我宁愿声明 struct root_st 并且 typedef struct root_st Root; (Gtk也使用它,或者非常类似的编码约定) . 和代码 Root* rootnode . 但这是值得商榷的问题 .

相关问题