-
宏定义:#define
- 将一个指定的标识符来代表一个字符串
写法:#define 标识符 字符串 - 定义参数的宏定义
写法:#define 宏名 字符串
- 将一个指定的标识符来代表一个字符串
-
文件包含
指一个源文件将另一个源文件的全部内容包含进来,也就是将另外的文件包含到本文件之中。
写法:
1、#include<文件名> 在系统目录中寻找
2、#include"文件名" 先在指定目录中寻找,然后再去系统目录中寻找,如果没有给出绝对路径,则先在用户当前目录中寻找 -
条件编译
#ifndef #ifdef 标识符 //当指定的标识符已经被#define命令定义过,则只编译程序段1 程序段1 #else //否则,编译程序段2 程序段2 #endif //限定¥ifdef命令的范围,不然会一直向下执行
eg:
#ifndef LOG_TAG #define LOG_TAG "JNI" #else #endif
#if 表达式 //表达式为真时,编译程序段1 程序段1 #else //否则,编译程序段2 程序段2 #endif //结束#if命令,不然会一直向下执行
eg:
#define IS_DEBUG true #endif #if IS_DEBUG #define LOG_TAG "JNI" #else #define LOG_TAG "TAG" #endif
-
常见的预处理指令
#define 宏定义 #undef 取消宏 #include 文本包含 #ifdef 如果宏被定义就进行编译 #ifndef 如果宏未被定义就进行编译 #endif 结束编译块的控制 #if 表达式非零就对代码进行编译 #else 作为其他预处理的剩余选项进行编译 #elif 这是一种#else和#if的组合选项 #line 改变当前的行数和文件名称 #error 输出一个错误信息 #pragma 为编译程序提供非常规的控制流信息
-
常用预定义宏
1. _LINE_ //当前源文件的行号,整数 2. _FINE_ //当前源文件名,char字符串,使用/FC选项产生全路径 3. _DATE_ //当前编译日期,char字符串,格式月 日 年 4. _TIME_ //当前编译时间,char字符串,格式时:分:秒 5. _STDC_ //整数1,表示兼容ANSI/ISOC标准,配合#if使用 6. _TIMESAMP_ //最后一次修改当前文件时间戳,char字符串,格式星期 月份 日期 时:分:秒 年
网友评论