一个关于宏的问题

BillGas 2004-09-25 05:42:44
#define IsDigit(c) ((c) >= '0' && (c) <= '9')
#define IsAlpha(c) ((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')
BOOL bResult = !IsAlpha('5') && !IsDigit('5');


为什么得到的bResult是真?
...全文
177 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluejugar 2004-10-02
  • 打赏
  • 举报
回复
/PEX
sharkhuang 2004-10-01
  • 打赏
  • 举报
回复
预编译看看吧
jorge 2004-10-01
  • 打赏
  • 举报
回复
定义带参数的宏的时候,要做到两点:
1.宏体中每处使用的参数都要加括号
2.整个宏体用一对括号括起来
这就OK了。
insulator 2004-09-25
  • 打赏
  • 举报
回复
c++中尽量少用#define,用inline/const
BillGas 2004-09-25
  • 打赏
  • 举报
回复
有高手幕友???欢迎探讨~

给我的教训就是#define后面多加个括号:P
BillGas 2004-09-25
  • 打赏
  • 举报
回复
#define IsDigit(c) (((c) >= '0' && (c) <= '9'))
#define IsAlpha(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z'))

这样结果就改变了

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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