我对Objective-C宏中的命名约定感到好奇。例如,以下代码是每个项目的预编译头文件(.pch文件)
中的标准代码#import <Availability.h>
#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
为什么__IPHONE_5_0以2个下划线为前缀,而__OBJC__前缀为2个下划线,后缀为2个下划线?带前缀的下划线通常表示程序员不应该触摸的系统内容。但是后缀下划线呢?谢谢!
答案 0 :(得分:2)
我做了一些研究,我在Apple's "Coding Guidelines for Cocoa"中找到了这个代码段:
请注意,编译器定义的宏具有前导和尾随 双下划线字符。例如:
__MACH__