OC 预编译指令

本文详细介绍了C语言中的宏定义,包括无参数宏、带参数宏的使用,以及宏定义的注意事项,如分号使用和作用域。同时,文章探讨了条件编译的概念,讲解了#if、#ifdef、#ifndef等预处理指令的用法,强调了条件编译在代码管理中的重要性。通过对宏定义和条件编译的理解,读者能更好地掌握C语言的预处理特性。
摘要由CSDN通过智能技术生成

宏定义 条件编译 文件包含

宏定义:

定义格式: #define 标识符 字符串
1、 不含参数: #define TAG_VIEW 10086
2、 含有参数:#define MAX_INT(a,b) a+b
3、 宏定义不是C语句,不必在行末加分号。如果加了分号则会连分号一起进行置换。
4、 #define 命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本文件结束。通常,#define 命令写在文件开头,函数之前,作为文件一部分,在此文件范围内有效。
5、 可以用#undef 命令终止宏定义的作用域。
6、对程序中用双撇号括起来的字符串内的字符,即使与宏名相同,也不进行置换。NSLog(@“MAX_INT = %d”, 10086)
7、宏定义是专门用于预处理命令的一个专用名词,它与定义变量的含义不同,只作字符替换,不分配内存空间。

条件编译:
条件编译就是在编译之前预处理器根据预处理指令判断对应的条件,如果条件满足就将对应的代码编译进去,否则代码就根本不进入编译环节(相当于根本就没有这段代码)。

常用条件编译函数
1、#if 编译预处理中的条件命令, 相当于C语法中的if语句
2、#ifdef 判断某个宏是否被定义, 若已定义, 执行随后的语句
3、#ifndef 与#ifdef相反, 判断某个宏是否未被定义
4、#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足, 则执行#elif之后的语句, 相当于C语法中的else-if
6、#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足, 则执行#else之后的语句, 相当于C语法中的else
7、#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
8、#if 与 #ifdef 的区别:#if是判断后面的条件语句是否成立,#ifdef是判断某个宏是否被定义过。要区分开!

另外,在创建一个头文件或pch文件 — 单独的一个.h文件时,常看到文件内自带了下述格式内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值