Objective-C系统宏中的下划线命名约定

时间:2014-10-31 22:51:41

标签: ios objective-c macos cocoa-touch macros

我对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个下划线?带前缀的下划线通常表示程序员不应该触摸的系统内容。但是后缀下划线呢?谢谢!

1 个答案:

答案 0 :(得分:2)

我做了一些研究,我在Apple's "Coding Guidelines for Cocoa"中找到了这个代码段:

  

请注意,编译器定义的宏具有前导和尾随   双下划线字符。例如:__MACH__