我试图声明一个指向任何返回相同类型的函数的函数指针.我省略了指针声明中的参数类型,以查看将生成什么错误.但该程序编译成功并执行没有任何问题.
这是正确的声明吗?我们不应该指定参数类型吗?
#include <stdio.h>
#include <stdlib.h>
void add(int a, int b)
{
printf("a + b = %d", a + b);
}
void (*pointer)() = &add;
int main()
{
add(5, 5);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
a + b = 10
Run Code Online (Sandbox Code Playgroud)
类型名称中的空括号表示未指定的参数.请注意,这是一个过时的功能.
C11(ISO/IEC 9899:201x)§6.11.6函数声明符
使用带有空括号的函数声明符(不是prototype-format参数类型声明符)是一个过时的功能.