C++,预处理器语句

C++, pre-processor statement

本文关键字:语句 处理器 预处理 C++      更新时间:2023-10-16

有人能解释一下这个语句的作用吗?

#define CONST_SIG (void (*) () ) 1

此语句将CONST_SIG定义为1,转换为指向不获取参数并返回void的函数的指针。如果你有一个指向函数的指针,并且你可能测试它的真实性,那么这个可能会很有用,那么CONST_SIG就是真的。

您可以尝试cdecl程序,它在许多linux发行版中都可用,用于C声明的"英语翻译"。此实例中的示例输出:

cdecl> explain (void (*) () )
cast unknown_name into pointer to function returning void

旁注:它之所以说"unknown_name",是因为我们的指针没有名称。例如,将其命名为"p",看起来像这样:(void (*p) () )

您可以将CONstrongIG传递给一个函数,该函数需要一个函数指针,并将值1视为该函数指针的特殊值。