使用#ifndef指令

时间:2015-06-09 14:20:24

标签: c gcc

我尝试使用#ifndef,如下所示。

#ifndef MACRO1 || #ifndef MACRO2
....
#endif

我已经尝试过:

#ifndef (MACRO1 || MACRO2) 
..
#endif

但对于这两种情况我都低于错误

  

错误:#ifndef指令结束时的额外令牌

4 个答案:

答案 0 :(得分:3)

改为使用#if预处理程序指令:

#if !defined(MACRO1) || !defined(MACRO2)

答案 1 :(得分:1)

您可以使用以下代码

#if !defined(MACRO1) || !defined(MACRO2)
#endif
  

您可以使用#if指令中定义的运算符来使用   在预处理器行中计算为0或1的表达式。

答案 2 :(得分:1)

#ifdef#ifndef#if defined(...)#if !defined(...)的特殊缩写。但是,它们只能用于单个宏,不允许进行逻辑操作。因此,如果要检查多个宏,请使用#if代替defined()运算符。作为常规操作符,这可以与逻辑操作组合,就像!defined()已经完成的那样。

答案 3 :(得分:0)

您可以在预处理程序指令中使用逻辑运算符,但为了检查已定义的内容,请使用defined指令:

#if !defined MACRO1 || !defined MACRO2
....
#endif