繁体   English   中英

函数指针和结构

[英]function pointer and struct

我正在阅读有关c中的结构的内容,并遇到了这段代码。 我希望有人可以帮助我分解这段代码,并了解它在做什么。

struct Person *Person_create(char *name, int age, int height, int weight)
{
    struct Person *who = malloc(sizeof(struct Person));
    assert(who != NULL);

    who->name = strdup(name);
    who->age = age;
    who->height = height;
    who->weight = weight;

    return who;
};

具体来说,这是我不理解的部分代码

*Person_create(char *name, int age, int height, int weight)

*与类型有关,与功能无关。

您应该将其读取为Person_create(char *name, int age, int height, int weight)返回的struct Person * Person_create(char *name, int age, int height, int weight)

因此该函数返回一个指向struct Person的指针。

这是常见的:

 [return type] func([arguments])

如果要编写函数指针,则将具有:

 [return type] (*func_pointer_name)([arguments])

 struct Person * (*person_create_p)(char *, int, int, int) = &Person_create;

暂无
暂无

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

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