通过函数指针调用函数的问题
Problem with calling a function via a function pointer
我有一个带有函数指针的结构,用于指向 bar() 函数,但我不知道如何调用所指向的函数:
#include <stdlib.h>
typedef struct Foo
{
int (*func_ptr)(const char *, const char *);
} Foo;
int bar(const char *a, const char *b)
{
return 3;
}
int main(void)
{
Foo *foo = (Foo *)malloc(sizeof(Foo));
foo->func_ptr = &bar;
//how do i call the function?
return 0;
}
假设你的const char *a
是“hello”而const char *b
是“there”,那么你可以使用以下任何一种形式通过它的指针调用函数:
(foo->func_ptr)("hello", "there");
(*foo->func_ptr)("hello", "there");
foo->func_ptr("hello", "there");
我有一个带有函数指针的结构,用于指向 bar() 函数,但我不知道如何调用所指向的函数:
#include <stdlib.h>
typedef struct Foo
{
int (*func_ptr)(const char *, const char *);
} Foo;
int bar(const char *a, const char *b)
{
return 3;
}
int main(void)
{
Foo *foo = (Foo *)malloc(sizeof(Foo));
foo->func_ptr = &bar;
//how do i call the function?
return 0;
}
假设你的const char *a
是“hello”而const char *b
是“there”,那么你可以使用以下任何一种形式通过它的指针调用函数:
(foo->func_ptr)("hello", "there");
(*foo->func_ptr)("hello", "there");
foo->func_ptr("hello", "there");