有人可以解释这句话的作用吗?
#define CONST_SIG (void (*) () ) 1
答案 0 :(得分:3)
此语句将CONST_SIG
定义为1
强制转换为指向函数的指针,该函数不获取任何参数并返回void
。如果你有一个指向函数的指针,并且你可能测试它的真实性,那么这个可能很有用,那么CONST_SIG
就是真的。
您可以尝试使用许多Linux发行版中提供的cdecl
程序进行C语句的“英语翻译”。此实例中的示例输出:
cdecl> explain (void (*) () )
cast unknown_name into pointer to function returning void
旁注:它说“unknown_name”的原因是因为我们的指针没有名称。举例来说,“p”的名称如下所示:(void (*p) () )
。
答案 1 :(得分:3)
您可以将CONST_SIG传递给需要函数指针的函数,并将值1视为此函数指针的特殊值。
答案 2 :(得分:1)