1.define的多行定义
define可以替代多行的代码,在每一个换行的时候加上一个"\"
#define MAX(X,Y) do { \
语句1; \
语句2; \
/* 注释的写法 */ \
} while(0) /* (no trailing ; ) */ \
例子:
#define FZUserInfoReset \
[[NSUserDefaults standardUserDefaults] setObject:kDefaultUserName forKey:Key_UserName];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_LoginToken];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_MemberID];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_HeadImage];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_Gender];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_NewMessage];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_RoleType];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_Tag];\
[[NSUserDefaults standardUserDefaults] removeObjectForKey:Key_BindingTag];\
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:Key_UserCash];\
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:Key_UserCredits];\
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:Key_UserTickets]
2.在大规模的开发过程中,特别是跨平台和系统的软件里,define最重要的功能是条件编译。
#ifdef WINDOWS
......
......
#endif
#ifdef LINUX
......
......
#endif
可以在编译的时候通过#define设置编译环境
#define FZUserInfoWithKey(key)\
[[NSUserDefaults standardUserDefaults] objectForKey:key]