define一问!

waterluo2003 2003-10-16 05:48:44
你好,有一个关于define的题目如下:要求的是输出结果,按常理,输出是"2",可在vc6.0上运行后是"-2";
但如果改成(k-doc(k-1))时,才会是"2",
为什么呀,加一个括号起了什么作用呢?

//////////////*
#include <iostream.h>
#define doc(x) x-1
void main(){
int k=99;
cout<<k-doc(k-1)<<endl;
}
...全文
37 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterluo2003 2003-10-16
  • 打赏
  • 举报
回复
唉,谢谢
zfxxx 2003-10-16
  • 打赏
  • 举报
回复
应是#define doc(x) (x)-1
blue_coco 2003-10-16
  • 打赏
  • 举报
回复
宏只是做代码替换。


k-doc(k-1)展开为
k-k-1-1 = -2;


#define doc(x) (x)-1

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧