什么';iPhone中使用了#ifdef和#endif处理器指令吗?

什么';iPhone中使用了#ifdef和#endif处理器指令吗?,iphone,preprocessor,using-directives,Iphone,Preprocessor,Using Directives,我想知道关于#ifdef、#ifndef和#endif的用法,以及在哪种情况下,必须使用这些条件句,以及它的用途是什么?“ifdef”和“ifndef”有什么区别 例如: #define MY_Global #ifdef MY_Global // write some code (Inside the method) #endif 或者 哪一个是正确的,它应该只写在方法内部还是在方法外部工作?。我以前没用过这个。那么请解释一下 谢谢 AFAIK,#ifdef=“如果定义”和#ifnde

我想知道关于#ifdef、#ifndef和#endif的用法,以及在哪种情况下,必须使用这些条件句,以及它的用途是什么?“ifdef”和“ifndef”有什么区别

例如:

#define MY_Global

#ifdef MY_Global
  // write some code (Inside the method)
#endif 
或者

哪一个是正确的,它应该只写在方法内部还是在方法外部工作?。我以前没用过这个。那么请解释一下

谢谢

AFAIK,#ifdef=“如果定义”和#ifndef=“如果未定义”。这些条件非常有用,例如,如果您希望仅为模拟器编译特定代码,那么您可以编写如下代码:

    #if TARGET_IPHONE_SIMULATOR
    #import "AccelerometerSimulation.h"
    #endif

这意味着,在为模拟器编译时,将导入AccelerometerSimulation.h。如果您是在设备上编译,它将被完全忽略。希望对您有所帮助。

第二个选项意味着如果未定义MY\u Global,则将完全缺少
自定义方法。事实上,您可以编写
。\if defined(NAME)
\if!已定义(名称)
而不是
\ifdef NAME
\ifndef NAME
。这还允许您一次性测试多个名称的定义:
#如果已定义(NAME1)和&defined(NAME2)
    #if TARGET_IPHONE_SIMULATOR
    #import "AccelerometerSimulation.h"
    #endif