宏定义
#define是C++语言中的一个预编译指令,它将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
使用
1)简单的宏替换
在程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换。
#define <宏名> <字符串> //格式
#define PI 3.1415926535
2)用作带参数的宏定义
#define <宏名>(<参数表>) <字符串>
#define sqr(x) ((x)*(x))
由于宏替换是进行字符串替换,将替换文本直接代入,也因此常出现错误。因此在c++中,这种替换一般被内联函数替代,内联函数的写法为:
//内联函数在函数定义前加inline关键字即可
inline int add(int x, inty){
return x+y;
}
3)防止头文件包含多次
- 使用#ifndef方法
//__BODYDEF_H__可换为其他自定义符号
#ifndef __BODYDEF_H__
#define __BODYDEF_H__
// 头文件内容
#endif
- 使用#pragma once
#pragma once
//头文件内容
4)用于debug输出
#define 标识符
#ifdef 标识符
程序段1
#else
程序段2
#endif
//例子 控制程序是否输出调试信息
// #define DEBUG
#ifdef DEBUG
cout << "val:" << val << endl;
#endif