【问题标题】:Underscore Naming Convention in Objective-C System MacrosObjective-C 系统宏中的下划线命名约定
【发布时间】:2014-10-31 22:51:41
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我做了一些研究,在Apple's "Coding Guidelines for Cocoa"找到了这个sn-p:

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

    【讨论】:

    • 好消息!那么只有两个前导下划线但没有尾随下划线的宏,例如上面的代码示例呢?它们是其他一些非编译器生成的杂项系统吗?这是一个雄心勃勃的问题,但是否有一个列表或指南来解释我们经常看到的许多这些系统的胆量(我通常会呆在上面)?
    猜你喜欢
    • 2012-04-04
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 2011-10-16
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多