当我将宏之类的函数作为参数传递给另一个声明为函数指针参数的函数时。我无法运行出现编译时错误的代码。
#include <stdio.h>
#define print_numbers() (void (0))
void display(void (*p)())
{
for(int i=1;i<=5;i++)
{
p();
}
}
int main() {
void (*p)(int); // void function pointer declaration
printf("The values are :");
display(print_numbers); return 0;
}
错误
prog.c: In function ‘main’: prog.c:16:13: error: ‘print_numbers’ undeclared (first use in this function)
display(print_numbers);
^
prog.c:16:13: note: each undeclared identifier is reported only once for each function it appears in