一. 宏定义
#define PI 3.141592653 //无参宏
#define SUM(a,b) a + b //有参宏与函数不一样
1. 调用PI时等同于获取数字3.141592653
2. 调用SUM(a,b)时,仅仅只为a + b不为函数
二. 条件编译
#ifdef PI
//#ifndef
//#ifdef
//#if 1
int sum(int a,int b) {
return a + b;
}
#else
//#elif xxx
int sum(int a,int b) {
return a * b;
}
#endif
#ifdef PI //为如果定义过PI则执行以下代码
#ifndef PI //为如果没有定义过PI则执行以下代码
#else //如果为定义则执行下列代码
三. 所谓预编译即在代码编译之前执行的操作,预编译过程会做数据的准备和替换,为编译过程做准备.
四. 宏定义与条件编译的优点
宏定义的作用是在程序的预编译期进行整体替换,将宏定义的标志替换为其所替代的数据,宏定义有三大好处:1.提高代码可读性; 2.方便书写; 3.方便对数据做修改,如果数据产生变化,仅需要修改宏定义部分.