宏:能避免函数的出栈与入栈操作,减少系统开销,提高运行效率
1.宏名一般用大写。
2.预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
3.宏定义末尾不加分号 。
4.宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
5.宏定义不分配内存,变量定义分配内存。
6.宏定义不存在类型问题,它的参数也是无类型的。
1.简单的宏
#define PI 3.1415926
2.取两个数的最小值,带上括号更规范些
#define Min(a,b) (a<b?a:b)
3.取三个数的最小值,可以嵌套上面这个宏
#define Min3(a,b,c) (Min(a,b)<c?Min(a,b):c)
4.定义一个UIColor 用RGB
#define UIColorFromRGBA(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
#define 用来定义一个宏
#undef 取消宏定义
#ifdef 判断某个宏是否被定义,若被定义执行随后语句
#ifndef 与#ifdef意思相反,若宏未被定义执行随后语句
下面带“#”的if else 语句
{
#if
........A代码块.....
#else
.........B代码块.......
#endif
这是C语法中的预编译处理条件命令,意思和 if else一样,只不过加上“#”后,只编译条件后边的,例如进了A代码块,那么B代码块就不会编译了,里面随便写,即使不符合语法也能编译通过。最后的#endif是结束if语句的意思
}