繁体   English   中英

Typedef结构指向函数的指针(C)

[英]Typedef struct pointer to function (C)

我试图将typedef结构指针传递给函数,并且编译器抱怨此错误消息: error:未知类型名称'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])
{
    ...
}

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 但这是值得商and的,而且是一种品味问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM