我正在尝试将 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])
{
...
}
最佳答案
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
。但这是值得商榷的,也是一个品味问题。
关于c - 指向函数的 Typedef 结构指针 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333922/