作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这两种语法有什么区别吗?
void fun( void (*funptr)() )
{
funptr(); // calls the function
}
void fun( void funptr() )
{
funptr(); // calls the function
}
我一直在使用第一种形式,但我刚刚看到了第二种形式,它的行为似乎完全一样,而且语法更清晰。
最佳答案
没有区别。在这两种情况下,funptr
的类型都是 void (*)()
,一种函数指针类型。
C99 标准,第 6.7.5.3 节,第 8 段:
A declaration of a parameter as ‘‘function returning type’’ shall be adjusted to ‘‘pointer to function returning type’’, as in 6.3.2.1.
关于c - 不寻常的函数指针参数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725338/
我是一名优秀的程序员,十分优秀!