一个宏定义值得注意的地方
来源:互联网 发布:移动网络想玩传奇 编辑:程序博客网 时间:2024/04/25 06:16
下面一段宏定义:
#include<iostream>
using namespace std;
#define MAX(x,y) (x)>(y)?(x):(y)
int _tmain(int argc, _TCHAR* argv[])
{
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d/n",t);
system("pause");
return 0;
}
打印结果:7//问题.......不应该是70吗?
分析:使用替换的方法看看 t=MAX(a+b,c+d)*10;到底是什么:
t = (a+b)>(c+d)?(a+b):(c+d)*10
原来最后的10乘了(c+d)
改进后
#include<iostream>
using namespace std;
#define MAX(x,y) ((x)>(y)?(x):(y))//注意括号
int _tmain(int argc, _TCHAR* argv[])
{
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d/n",t);
system("pause");
return 0;
}
打印结果 70
- 一个宏定义值得注意的地方
- 值得注意的地方
- 今天第一次改Makefile 有一个值得注意的地方
- Socket WSAAsyncSelect模型值得注意的一个地方
- 使用proxool一个非常值得注意的地方
- 一些值得注意的地方
- Tuscany值得注意的地方
- IOS 值得注意的地方
- JavaSE值得注意的地方
- 宏定义要注意的地方
- 宏定义需要注意的地方
- JS的几个值得注意的地方
- Unix C语言值得注意的地方
- sql 语句值得注意的地方
- 使用XML值得注意的几个地方
- ssh 框架搭建值得注意的地方
- Win32 SDK值得注意的地方
- shared_from_this 几个值得注意的地方
- 格式化时间
- CMM做为改进软件过程的框架的优劣
- Response.ContentType
- Usage of Cursor in Oracle Procedure
- 搭建Eclipse3.2.2+MyEclipse5.5+Tomcat+Weblogic下的J2EE开发环境
- 一个宏定义值得注意的地方
- Function of Oracle
- 学习是积累的!——学习.积累.(window对象的属性);
- 毕业后一年
- 排序算法总汇
- View of Oracle
- 世界上有两种事情是不能勉强的
- 发呆
- 学好英语,学好数学。