C++,预处理器语句
C++, pre-processor statement
有人能解释一下这个语句的作用吗?
#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视为该函数指针的特殊值。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 预处理器:插入结构名称中的前一个行号
- 如何在c++中实现处理器调度模拟器
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- C/C++预处理器是否可以检测一些编译器选项
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 将预处理器指令作为语句的一部分
- 调试日志语句的预处理器宏在C++中有一席之地吗
- C++预处理器宏和返回语句
- C++,预处理器语句
- 条件预处理器相对于条件语句的优势
- 如何使用c++宏预处理器生成有效的include语句
- Emacs c++模式在预处理器语句后创建尾随空格+反斜杠
- 不能禁止使用预处理器语句的标准函数吗?
- 为什么使用预处理器 #if 语句而不是 if() else