2014-10-31 64 views
2

我很好奇Objective-C宏中的命名約定。例如,下面的代碼是在每一個項目的預編譯的頭文件標準(.PCH文件)Objective-C系統宏中的下劃線命名約定

#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

我做了一些研究,我發現這個片段在Apple's "Coding Guidelines for Cocoa"

注意,編譯器定義的宏,開頭和結尾 雙下劃線。例如:__MACH__

+0

不錯的小聞!那麼宏只有2個前導下劃線但沒有尾隨下劃線(如上面的代碼示例)呢?他們是一些其他的非編譯器生成的系統的東西?這是一個雄心勃勃的問題,但是有沒有一個列表或指南來解釋我們經常看到的很多這些系統內容(而且我通常會釉下去)? – CarlGammaSagan 2014-11-04 00:21:33