这是有效的 C99 代码吗? (我想我是在问它是否便携)
void test(void){
return;
}
void (*fp)(void) = test;
if (fp == test){ <--- This line
printf("Success\n");
}
我只收集相同类型的指针可以相互比较,所以也许我的问题是像“test”这样的函数名称是否只是指针别名?或者也许有人可以告诉我我的问题比我更好:)
最佳答案
代码是有效的 ANSI C。
实际上,代码中的函数名称(例如 test
)会自动转换为指向函数的指针。
可以将test
改为&test
,结果是一样的。
关于我可以比较函数指针和函数是否相等吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57487488/