有人能解释一下这个语句的含义吗?
#define CONST_SIG (void (*) () ) 1
CONST_SIG
定义为指向一个没有参数且返回void
的函数的指针,该指针被转换为1
。如果你有一个指向函数的指针,而且你可能要测试它是否为真,则CONST_SIG
将为真可能会有用。cdecl
程序,在许多Linux发行版中都可用,来实现C声明的“英语翻译”。这种情况下的示例输出:cdecl> explain (void (*) () )
cast unknown_name into pointer to function returning void
附注:它说“unknown_name”的原因是我们的指针没有名称。例如,命名为“p”的指针看起来像这样:(void (* p) ())
。
您可以将CONST_SIG传递给期望函数指针的函数,并将值1视为此函数指针的特殊值。
#define
通常是用来做什么的吗? - Rob Kennedy