【发布时间】:2014-01-17 02:27:11
【问题描述】:
我试图声明一个指向任何返回相同类型的函数的函数指针。我省略了指针声明中的参数类型,看看会产生什么错误。但是程序编译成功,执行没有任何问题。
这是一个正确的声明吗?我们不应该指定参数类型吗?
#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;
}
输出:
a + b = 10
【问题讨论】:
-
这是完全合法的 K&R C。
-
示例代码作为示例没有意义。
-
@BLUEPIXY 为什么会这样?
-
指针未用于除此之外的赋值。不知道就算不使用无效指针也不行吧?这不是至少获得正确输出的原因。