我试图将一个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 回答
struct
应该在main
之外,所以移动在
main
函数之前 . 如果程序足够大,请考虑将其移动到某个头文件中(*.h
)我会避免使用
mkdir
名称 . 它在Posix中定义,在Linux上是指mkdir(2)系统调用 .我不认为
typedef struct Root *RootP;
是漂亮的代码:你通常希望一眼看出什么是C指针 . 我宁愿声明struct root_st
并且typedef struct root_st Root;
(Gtk也使用它,或者非常类似的编码约定) . 和代码Root* rootnode
. 但这是值得商榷的问题 .