码迷,mamicode.com
首页 > 其他好文 > 详细

宏定义的本质

时间:2019-11-23 20:08:16      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:a+b   std   cpp   out   类型转换   宏定义   例子   pre   c++   

宏定义的本质:

字符替换,没有类型转换,一定记住

来看一个例子:

#include<bits/stdc++.h>
using namespace std;

#define AREA(a,b) a+b

int main()
{
	int s=AREA(3,4)*AREA(3,4);
	cout << s << endl;
	return 0;
}

  请问输出答案是多少?

你可能会说是49,上当了兄弟

答案是19,都说了是字符替换所以

AREA(3,4) 并不是返回一个答案而是一个字符替换 3+4
那么
s=AREA(3,4)*AREA(3,4) 等价于 s=3+4*3+4
所以结果是19

宏定义的本质

标签:a+b   std   cpp   out   类型转换   宏定义   例子   pre   c++   

原文地址:https://www.cnblogs.com/mch5201314/p/11919308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!