美文网首页
定义常量的方法比较

定义常量的方法比较

作者: abyte | 来源:发表于2016-01-15 10:46 被阅读61次

    定义常量的方法

    1. 采用宏定义
    #define kConstantString @"kConstantString"
    
    1. 使用FOUNDATION_EXPORT
    .h
    FOUNDATION_EXPORT NSString *kConstantString1;
    
     .m
    NSString *kConstantString1 = @"kConstantString1";
    
    1. 使用extern
    .h
    extern NSString *const kConstantString2;
    
    .m
    NSString *const kConstantString2 = @"kConstantString2"; 
    

    他们的区别呢?

    可以参考这里的回答,用FOUNDATION_EXPORT可以编译成C中的extern,C++的extern "C",为了更好的和其他语言共存,所以说FOUNDATION_EXPORT比extern好。

    那么FOUNDATION_EXPORT和#define比较呢

    推荐使用FOUNDATION_EXPORT这种带类型的常量定义
    比如说

    static const CGFloat kPadding = 0.2;
    #define kPadding = 0.2;
    

    第一种带类型的常量可以显性的告知程序员该常量的类型,方便开发阅读

    总结

    多使用FOUNDATION_EXPORT而不是extern和#define

    相关文章

      网友评论

          本文标题:定义常量的方法比较

          本文链接:https://www.haomeiwen.com/subject/hadhkttx.html