函数指针和结构
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 *
。
所以函数returns指向struct Person
的指针。
很常见:
[return type] func([arguments])
如果你想写一个函数指针,你会:
[return type] (*func_pointer_name)([arguments])
即
struct Person * (*person_create_p)(char *, int, int, int) = &Person_create;
我在阅读有关 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 *
。
所以函数returns指向struct Person
的指针。
很常见:
[return type] func([arguments])
如果你想写一个函数指针,你会:
[return type] (*func_pointer_name)([arguments])
即
struct Person * (*person_create_p)(char *, int, int, int) = &Person_create;