无法理解C函数调用
我有一个定义如下的函数:无法理解C函数调用,c,function,C,Function,我有一个定义如下的函数: int foobar(char *ptr,...) 函数调用如下所示: int (*fooptr) (char *,...) = foobar; 我无法理解函数是如何被调用的。。。 提前感谢这不是函数调用 它声明一个名为fooptr的函数指针变量,该变量保存函数的地址 要通过指针调用该函数,您可以执行以下操作: int return_value = (*fooptr)(char_ptr, x, y, z); 这不是函数调用 它声明一个名为fooptr的函数指针变量
int foobar(char *ptr,...)
函数调用如下所示:
int (*fooptr) (char *,...) = foobar;
我无法理解函数是如何被调用的。。。
提前感谢这不是函数调用 它声明一个名为
fooptr
的函数指针变量,该变量保存函数的地址
要通过指针调用该函数,您可以执行以下操作:
int return_value = (*fooptr)(char_ptr, x, y, z);
这不是函数调用 它声明一个名为
fooptr
的函数指针变量,该变量保存函数的地址
要通过指针调用该函数,您可以执行以下操作:
int return_value = (*fooptr)(char_ptr, x, y, z);
这不是电话。这是一个
fooptr
的声明,不是一个调用。这是一个fooptr
声明,您发布的代码不会调用该函数。第一行是函数声明,第二行是创建指向它的指针。要调用它,您必须使用foobar(myCharPtr[,其他参数])
或fooptr(myCharPtr[,其他参数])
函数不会使用您发布的代码调用。第一行是函数声明,第二行是创建指向它的指针。要调用它,您必须使用foobar(myCharPtr[,其他参数])
或fooptr(myCharPtr[,其他参数])
在您的示例中没有调用该函数。它的地址存储在fooptr
变量中,该变量是一个函数指针。如果以后调用该函数指针时它仍指向foobar
函数,它将调用foobar
函数
您可以将第二行写为:
// declare fooptr as a variable of type function pointer
// taking (char*,...) and returning int
int (*fooptr) (char *,...);
// take the address of foobar function and assign it to fooptr
fooptr = &foobar;
让它更清楚。在您的示例中,函数没有被调用。它的地址存储在
fooptr
变量中,该变量是一个函数指针。如果以后调用该函数指针时它仍指向foobar
函数,它将调用foobar
函数
您可以将第二行写为:
// declare fooptr as a variable of type function pointer
// taking (char*,...) and returning int
int (*fooptr) (char *,...);
// take the address of foobar function and assign it to fooptr
fooptr = &foobar;
更清楚地说。这是一个,可以接收不同数量的参数(类似于)。您给出的第二行是赋值,而不是函数调用。这是一行,它可以接收数量可变的参数(类似于)。您给出的第二行是赋值,而不是函数调用。
声明
和实例化
也?@hari-变量声明也可以初始化变量。声明
和实例化
也?@hari-变量声明也可以初始化变量。