Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C预处理器指令,这是正确的语法吗#Ifdef foo||bar_C_Syntax - Fatal编程技术网

C预处理器指令,这是正确的语法吗#Ifdef foo||bar

C预处理器指令,这是正确的语法吗#Ifdef foo||bar,c,syntax,C,Syntax,我有一个预处理器指令 //#define SPEC_CONTROL // Is not defined, but can be if need be #define SPEC_A_CONTROL // Is defined #ifdef SPEC_CONTROL || SPEC_A_CONTROL ; // do something #else ; // do something else #endif 像我这样使用|的语法正确吗 我至少可以向你保证 #if define

我有一个预处理器指令

//#define SPEC_CONTROL  // Is not defined, but can be if need be
#define SPEC_A_CONTROL  // Is defined

#ifdef SPEC_CONTROL || SPEC_A_CONTROL
    ; // do something
#else
    ; // do something else
#endif

像我这样使用
|
的语法正确吗

我至少可以向你保证

#if defined(SPEC_CONTROL) || defined(SPEC_A_CONTROL)
适用于Windows和多个UNIX平台。我不确定

#ifdef SPEC_CONTROL || SPEC_A_CONTROL

通过使用
if defined
指令,可以在C预处理器指令中使用布尔逻辑

有关更多信息,请参阅本文:

尝试过,没有出现错误,但代码没有像我想象的那样工作。我只是需要一次精神检查。这会很有帮助。对于此类问题,您可以在if和else中始终使用#error 0、#error 1或#warning来查看预编译器到底包含了什么。这就是我一直在寻找的。现在编译器把所有其他的都称为错误,但奇怪的是,当它们都像我看到的那样时,它还可以吗?好了,现在我又可以搬家了谢谢!