c++ #define 和 #undef 用法

5,338 阅读1分钟

#define :用于定义一些不可改变的值,类似于const

不过const是放在栈上,而#define定义的常量是放在静态存储区的,区别在于静态存储区,是在整个程序执行完后才释放的。 然后#undef 是 取消该定义 就是定义无效的意思

接下来看代码即可明白其中的意思了

首先是通常情况下 只有define的情况

#include "stdafx.h"
using namespace std;

#define MAXX 3
//#undef MAXX
//#define MAXX 5
int _tmain(int argc, _TCHAR* argv[])
{
	int mm = MAXX;
	cout << MAXX << endl;
	cin >> mm;
	return 0;
}

这个就很简单明了 输出3

接下来加上#undef的情况下

#include "stdafx.h"
using namespace std;

#define MAXX 3
#undef MAXX
//#define MAXX 5
int _tmain(int argc, _TCHAR* argv[])
{
	int mm = MAXX;
	cout << MAXX << endl;
	cin >> mm;
	return 0;
}

直接报错 ,可以看到 #undef的作用就是取消宏定义