美文网首页
宏定义大总结

宏定义大总结

作者: code_牧轩 | 来源:发表于2018-08-22 15:39 被阅读0次

一:用法 

1.FOUNDATION_EXPORT   、#define  都是定义宏定义的

2.const 定义常量字符串

FOUNDATION_EXPORT            NSString*constkMyConstantString;

宏与const区别:

1.编译时刻不同,宏属于预编译,const属于编译时刻

2.宏能定义代码,const不能,多个宏对于编译会相对时间较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间。

3.宏不会检查错误,const会检查错误

二:条件语句

#define定义一个预处理宏

#undef         取消宏的定义

#include       包含文件命令

#ifdef            断某个宏是否被定义, 若已定义, 执行随后的语句

#ifndef         与#ifdef相反, 判断某个宏是否未被定义

#elif              若#if, #ifdef, #ifndef或前面的#elif条件不满足, 则执行#elif之后的语句, 相当于C语法中的else-if

#else            与#if, #ifdef, #ifndef对应, 若这些条件不满足, 则执行#else之后的语句, 相当于C语法中的else

#endif          #if, #ifdef, #ifndef这些条件命令的结束标志.(PS: 你会发现#if和#ifdef有点类似.)

defined      与#if, #elif配合使用, 判断某个宏是否被定义

#line          标志该语句所在的行号

#                将宏参数替代为以参数值为内容的字符窜常量

##              将两个相邻的标记(token)连接为一个单独的标记

#pragma    说明编译器信息#warning显示编译警告信息

#error          显示编译错误信息

\                  回车连接符

另附上一段大神的宏定义:



NS_ASSUME_NONNULL_BEGIN && NS_ASSUME_NONNULL_END

在这两个宏之间的代码,所有简单指针对象都被假定为nonnull,因此我们只需要去指定那些nullable的指针

UIKIT_EXTERN

extern这个是定义字符串 变量 比#define更加的高效 .但是UIKIT_EXTERN是根据是否是C语言宏定义,根据语言区分 ,比extern更加的高效

UIKIT_EXTERNNSString*constUIApplicationInvalidInterfaceOrientationExceptionNS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;

NS_ENUM_AVAILABLE_IOS

从单词的字面可以看出使用这个宏说明这个枚举开始IOS的版本,NS_ENUM_AVAILABLE_IOS(2_0) 代表>=2.0开始

NS_ENUM_DEPRECATED_IOS

代表枚举类型已经过时的API 第一个参数是开始的时候,第二个参数是过时的时候  NS_ENUM_DEPRECATED_IOS(2_0,7_0) 代表开始于IOS2.0废弃于IOS7.0 也就是>=2.0 <=7.0

__TVOS_PROHIBITED

代表这个枚举或者类,方法,参数在TVOS系统上面不能使用

NS_CLASS_AVAILABLE_IOS

NS_CLASS_AVAILABLE_IOS(2_0)@interfaceUIApplication:UIResponder

NS_EXTENSION_UNAVAILABLE_IOS

标记IOS插件不能使用这些API,后面有一个参数,可以作为提示,用什么API替换

+ (UIApplication*)sharedApplicationNS_EXTENSION_UNAVAILABLE_IOS("Use view controller based solutions where appropriate instead.");

NS_REQUIRES_SUPER

字面上必须继承父类的方法(有待考证)

SDK_HIDE_TIDE

NS_DESIGNATED_INITIALIZER

相关文章

  • 宏定义大总结

    一:用法 1.FOUNDATION_EXPORT 、#define 都是定义宏定义的 2.const 定义常量字符...

  • define

    大神总结的宏定义

  • C语言 预处理指令

    一 .宏定义 #define 宏定义宏定义会在预处理的时候,用宏定义的值来替换宏的名称 定义格式 "#define...

  • iOS开发常用的工具类和宏定义

    iOS开发常用的工具类和宏定义 开发总结的工具类和宏 https://github.com/xiaoChen66...

  • iOS 通用宏定义总结

    https://blog.csdn.net/jiaxin_1105/article/details/74923890

  • swift&&OC

    宏定义 OC中的宏定义 swift中的宏定义 OC中宏定义的方式,在swift中是不可用的,在swift中,宏定义...

  • [iOS功能]- 宏定义

    单行宏定义 多行宏定义

  • 准备:回顾c

    宏定义 关键字 define 定义一个常量的方法(即宏定义) 带参数的宏定义 宏函数的定义 使用宏函数的好处是,不...

  • c高级自我学习(1)

    1 编译预处理和宏定 #undef指令删除前面定义的宏定义。 无参宏定义:宏名中没有参数。 1,宏定义中宏名用来表...

  • 5月31

    今天学习了宏定义 宏定义分为:不带参数的宏定义和带参数的宏定义,不占用任何内存空间,宏定义时不加分号。 #defi...

网友评论

      本文标题:宏定义大总结

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