0

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

1 回答 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_stand have typedef struct root_st Root; (Gtk 也使用那个,或者非常相似的编码约定)。和代码Root* rootnode。但这是有争议的,也是品味问题。

于 2012-09-08T19:49:10.450 回答