Macros & Variable & Const

2020-05-25  本文已影响0人  ienos

1)static

2)const

< 使用 const 修饰的几种形式>

注: *p 表示指针,p 表示变量

表达式 结果
int const *p const 修饰 *p 只读,p 变量
int *const p const 修饰 p 只读,*p 变量
const int *const p const 修饰 p 和 *p 都只读
int const *const p const 修饰 p 和 p 都只读

3)extern

~~ 举例,常见我们会定义一个常量,但是具体值不会暴露在 .h 文件

Q: 那么如何在 ClassB.m 中使用该常量

👆 以上两种方法都会指向在 ClassA.m 中定义的变量

3)#define

例如 #define SUM(x, y) x+y

1 * SUM(1, 2) 等价于 1 * 1 + 2

1. 常见宏定义使用

2. 宏定义中的操作符

符号 别名 例子
## 连接操作符 #define single(name) +(instance)share##name;
#@ 字符化操作符 (字符串转字符):例如 : “1” -> ‘1’
# 字符串化 #代表 "",即 #x 等价于 "x"
\ 行操作符 宏定义的回车,在末尾添加,最后一行可不加
__VA_ARGS__ 接收不定数量的参数 #define eprintf(...) fprintf (stderr, __VA_ARGS__);__VA_ARGS__ 前面加 ## 时,可以省略参数输入

3. 宏的 if-else

#ifdef DEBUG
#elif 
#else
#endif

4. 不同 Target 或者不同 Environment 下不同的宏定义设置
OC . Build Setting -> Preprocessor macros 添加对应的宏 MODE=1
Swift . Build Setting -> Other Swift Flags 添加宏 -D MODE

上一篇下一篇

猜你喜欢

热点阅读