2011-01-21 14 views
0

#ifdef、#ifndef、#endifの使用について知りたいのですが、どのような場合にそれらの条件文を使用しなければならないのですか? #ifdefと#ifndefの違いは何ですか?例えばのためにiPhoneで#ifdefおよび#endifプロセッサディレクティブを使用するにはどうすればよいですか?

#define MY_Global 

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

または、1はそれが唯一の方法の内側に書くべきか、それが法の外作品をしているかどうか、正しい

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

?。私は以前これを使っていません。だから私を説明してください?

ありがとうございます!

+0

'MY_Global'が定義されていないと、' customMethod'は完全に失われます。 – BoltClock

答えて

2

AFAIK、#ifdef = "定義されている場合"、#ifndef = "定義されていない場合" 、あなたがシミュレータ用にコンパイルする場合、AccelerometerSimulation.hを意味

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

:これらの条件文は、あなただけのシミュレータ用にコンパイルするために、特定のコードをしたい場合たとえば、あなたのようなものを書きたい、便利ですインポートされます。デバイス上でコンパイルしている場合は、完全に無視されます。希望が役立ちます。

+1

'#if defined(NAME)'と '#if!defined(NAME)'を '#ifdef NAME'と '#ifndef NAME'です。また、これは '#if defined(NAME1)&& defined(NAME2)'のように複数の名前の定義をテストすることもできます。 –

関連する問題