条件编译指令 对源程序进行有条件的编译 主要用于调试程序
与分支语句的区别1、不需要占用内存空间
2、执行时间不一样 3.多文件编程
//定义宏#define DEBUG1 0#define IA64#define IA32#define LLVM3int main(){ @autoreleasepool { int sum = 0; for (int i = 1; i<=100; i++) { sum += i;#if DEBUG1 NSLog(@"i = %d sum = %d",i,sum);#endif } NSLog(@"%d",sum);#ifdef IA64 NSLog(@"系统是64位的");#else NSLog(@"系统是32位的");#endif #ifndef IA32 NSLog(@"系统是64位的");#else NSLog(@"系统是32位的");#endif #if defined LLVM4 NSLog(@"LLVM 4.0");#elif defined LLVM3 NSLog(@"LLVM3.0");#elif defined LLVM2 NSLog(@"LLVM2.0");#endif #undef IA32//终止宏名的作用域#ifndef IA32 NSLog(@"没有定于IA32");#endif