预处理
1.预处理的指令和功能
以“#”开头的语句
#include 文件包含
#include <stdio.h> 在标准库下面找
#include "stdio.h" 在当前工作路径下查找 自定义头文件的包含形式
区别:查找的路径不相同
#define 宏定义
不带参数的宏和带参数的宏
#define PI 3.14
#define MAX(a,b) a>b?a:b
better-> MAX(a,b) (a)>(b)?(a):(b)
int result = MAX(3,5); 3>5?3:5;
操作符 ##
#define VAR(n) v##n
当使用这种方式应用宏: VAR(1),预处理时,将会得到:v1
int i;
for(i = 1;i < 100;i++)
int VAR(i);
//int v1; int v2;int v3;
2.条件编译(后接常量表达式)
#if #else #endif
#if #elif #else #endif
#ifdef 如果定义了
#ifndef 如果没有定义(在头文件中运用最多) 目的:防止重复定义!!!
在头文件中进行函数的声明和变量的声明,结构体的声明;
在C文件中进行变量定义,函数编写;
#undef 宏名 取消宏定义
3.预定义的宏名
__DATE__ 当前源程序的创建日期
__FILE__ 当前源程序的文件名称
__LINE__ 当前被编译代码的行号
__TIME__ 当前源程序的创建时间