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

标签 c function pointers struct typedef

我正在尝试将 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/

相关文章:

C++ 如何从函数传递两个结构?

objective-c - 什么会导致 CFSocket 自行关闭?

正确调整 Alsa 缓冲区大小,奇怪的 API

c - 使用 libav* 将 H.264 转码为 VP8 的帧速率不正确

c - 使用指针对二维数组中一行中的元素进行排序

c++ - 在 C++ 中更改 char[] 的指针

c++ - 使用 C_LOC() 将指向一维 Fortran 数组的指针传递给 C++ 会导致垃圾值

c - Windows API 是否可以与 Windows 窗体一起使用

python - 执行子函数的主函数

r - 使用运行时生成的省略号参数(点-点-点/三个点)调用 R 函数