#define用法和应用介绍

#include<iostream>
#define to_string(s) #s  
#define com(x,y) x##y
#define ad(x) ( ((x)>0)? -(x):(x))
#define PI 3.14
/*
	预处理命令:#define用法和应用 
		#define x y    //把文件中的x都替换成y,直接替换 
	应用:
		1.用于宏定义(把字符串替换成常量) eg:#define PI 3.14
		2.用于函数替换(表达式多用圆括号,为了区分)   格式 #define 函数名(不带类型的参数列表) 表达式 
			eg:求最大值函数
			#define max(x,y) ( (x>y)?(x):(y) )
			。。。 
			cout<<max(12,1)<<endl;  //把max(12,1)替换成#define定义的函数 
			用于替换文件中的max(x,y)函数,返回值是后面的语句
		3.#define 和"#" 或者"##"连用  只能和#define连用 
			1.#的作用是:使#后面的首个参数返回一个带引号的字符串
			2.##的作用是:连接##前后的内容
			eg:#define to_string(s) #s
			调用 cout<<to_string(hello world)<<endl;   //to_string的回结果是"hello world" 
			eg:#define ad(x,y) x ## y
			调用 cout<<ad(12,3)<<endl;  //ad(12,3)返回的结果是 123  不改变类型就是简单的连接 
*/
using namespace std;
int main()
{
	cout<<to_string(hello world)<<endl;
	cout<<sizeof(com(19,2))<<endl;
	cout<<ad(-12)<<endl;
	cout<<PI*PI<<endl;
	return 0;
}

  

posted @ 2021-02-22 18:58  nanfengnan  阅读(250)  评论(0编辑  收藏  举报