繁体   English   中英

C函数的替代语法将另一个函数作为参数[关闭]

[英]Alternate syntax for C functions taking another function as a parameter [closed]

我最近了解到这是合法的C:

#include <stdio.h>

int foo(int bar(int))
{
  return bar(42);
}

int bar(int x)
{
  return x * 42;
}

int main()
{
  printf("Baz = %d\n", foo(bar));
  return 0;
}

编译时没有警告并按预期运行(即使作为C程序而不是C ++,编译和工作正常)

rep ~/Documents $ g++ -Wall test.cpp
rep ~/Documents $ ./a.out
Baz = 1764
rep ~/Documents $

为什么这种语法不经常使用,甚至在任何地方都没有提到?

也许是因为你可以调用另一个函数内部的函数。 这比作为参数的功能更清晰。 虽然框架用于运行回调函数。 我喜欢来自另一个函数的函数作为普通开发人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM