【发布时间】:2020-11-25 07:14:29
【问题描述】:
为什么 “void (*parse(char *op))(int, int)” 写成这样? (主要添加以给出用例),它被一个指针“有趣”调用,带有 argv[2] 没有整数(第 18 行)......然后再次作为“有趣”使用整数(第 21 行)?
void (*parse(char *op))(int, int)
{
if (!strcmp(op, "+"))
return(other stuff...);
else
return (0);
}
int main(int argc, char *argv[]){
int a;
int b;
void (*fun)(int, int);
if (argc == 4){
a = atoi(argv[1]);
fun = parse(argv[2]);
b = atoi(argv[3]);
if (fun)
fun(a, b);
else
return(0);
}
return(0);
}
它在技术上是如何工作的,它只是用更简单的方式来炫耀它还是这是唯一正确的语法?
【问题讨论】:
-
欢迎享受函数指针的乐趣。
parse()是一个返回指向函数的指针的函数。知道other stuff...是什么会很有趣/很有帮助。
标签: c function-pointers definition