最后一个函数参数在C语言中意味着什么? 请指出我可以阅读的文档。
void parse_options( int argc, char **argv, const OptionDef *options,
void (* parse_arg_function)(const char*) )
感谢。
答案 0 :(得分:6)
这是一个pointer to a function,需要const char*
并返回void
。
有关详细信息,请参阅here。
答案 1 :(得分:3)
这是一个函数指针。该函数名为parse_arg_function
,它接受const char*
参数,并返回void
。
在您显示的情况下,函数指针实际上被用作回调。在该函数内部,它可以按照
的方式使用// ...
for (int i = 0; i < argc; i++)
{
parse_arg_function(argv[i]);
}
// ...
您可能希望阅读this function pointer tutorial以进行更深入的讨论。
答案 2 :(得分:1)
This是对函数指针的一个很好的介绍。将它们视为与内存中的函数有关的代码的地址。
答案 3 :(得分:1)
如果对C中的声明含义有疑问,可以ask cdecl:
将parse_arg_function声明为函数指针(指向const char的指针)返回void
答案 4 :(得分:1)
这是来自ffmpeg库的函数。引自online documentation关于ffmpeg:
parse_arg_function 调用的函数的名称,用于处理没有前导选项名称标志的每个参数。如果不必处理这些参数,则为NULL。
换句话说:当你想为每个参数自己做一些处理时,你可以给自己的功能。否则,只需使用NULL
。