iPhone中#ifdef和#endif处理器指令的用途是什么?

时间:2011-01-21 13:24:08

标签: iphone preprocessor using-directives

我想知道#ifdef,#ifnf和#endif的用法以及哪种情况,必须使用这些条件以及它的用途是什么?什么是#ifdef和#ifndef之间的区别?

例如:

#define MY_Global

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

,或者

  #ifdef MY_Global   
  -(void) customMethod
  {
       // Do something
  }
  #endif 

哪一个是正确的,是否应该只在内部方法中编写,或者它是否在方法外工作?我以前没用过这个。请解释一下吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

AFAIK,#ifdef =“如果已定义”,则#ifndef =“如果未定义”。这些条件很有用,例如,如果您只想为模拟器编译某个代码,那么您可以编写如下内容:

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

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