如何检查是否定义了类似函数的宏?

时间:2016-05-17 11:51:54

标签: c++ c-preprocessor

我的代码中有一行如下所示:

#ifndef MACRO(n)

这实际上适用于大多数编译器。但是,这在Solaris上失败,因为官方语法为# ifndef identifier new-line groupopt,并且标识符中不允许使用括号。

检查此宏是否已定义的正确方法是什么?

1 个答案:

答案 0 :(得分:8)

你不需要(n),如果你使用它,gcc会抱怨:

warning: extra tokens at end of #ifndef directive

这是因为#ifndef期望标识符不是表达式,(n)可能被预处理器忽略

只需检查宏定义名称就足够了:

#ifndef MACRO