1.编译器运行前会先运行预处理器,查找所有预处理指令
2.#include用于包含头文件
包含c盘下头文件header.h #include"c:\header.h"
3.#define Num 100
#dfine N 1<<2
当cout<<N;时结果不是4而是cout<<1<<2;
所以宏定义时不代表左移而是代替而已。
4.#define作用
1. 替字面常量
a.
#define ha 98.5
使用宏只是单纯文本替换,无类型信息。因此在要求类型的地方使用宏有危险性。
针对这种情况要使用符号常量:const double ha 98.5。
b.
#define N 100 对N宏定义
之后对3N 和N7定义
#define 3N 3*N 表示将3N定义为3*100即300
#define N7 N+7 表示将N7定义为100+7即107
2. 替运算符
#define ADD +
#define OR ||
#define BEGIN {
#define END }
#define OUT cout<<
void happy()
{
int a=1;
int b=a ADD a;
if(a OR b) OUT "happy is easy!";
}
3. 声明 符号(宏名称)
#define ok /* 只进行声明不定义*/
宏:一种批量批处理的称谓,宏是一种规则或模式,或称语法换。
以下是宏定义带参函数
#include<iostream>
using namespace std;
#define COMPARE(a,b) if(a>b)cout<<a<<" is bigger";\
else cout<<b<<"更大(后者)";
int main()
{
int a=3,b=4;
COMPARE(a,b)
}
注意事项:
/*
1 定义带参数的宏,名称和传参括号之间不能有空格
2 才如果定义的文本一行写不完就在后面添加 “\“宏定义的最后一行后面不添加 ”\ ”符号
3 在文本内使用注释不能使用双划线格式,需要用/**/,否则会被当做文本体
*/