博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
宏定义Bug
阅读量:6454 次
发布时间:2019-06-23

本文共 288 字,大约阅读时间需要 1 分钟。

    昨天在公司调程序,最后定位到是由一个宏定义引起的Bug。我的宏定义是这样写的:

#define BYTE(n) (n * 2)

我一直认为我不会在宏定义上犯错误,因为我见过一些错误的例子,所以我很小心的加了个括号。遗憾的是这还是错误的。知道是一回事,实践是另一回事!当程序执行下面这句时结果就不是我预期的了:

int i = BYTE(1 + 2)

所以正确的写法是:

#define BYTE(n) ((n) * 2)

(The End)

转载于:https://www.cnblogs.com/bitbyte/archive/2012/11/25/2788321.html

你可能感兴趣的文章
Serializers 序列化组件
查看>>
最简单的RPC框架实现
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
CountDownLatch与thread-join()的区别
查看>>
linux下MySQL安装登录及操作
查看>>
centos 7 部署LDAP服务
查看>>
揭秘马云帝国内幕:马云的野心有多大
查看>>
topcoder srm 680 div1
查看>>
算法专题(1)-信息学基本解题流程!
查看>>
模拟文件系统
查看>>
使用SSH连接Windows10 Ubuntu (WSL),Pycharm
查看>>
poj2155
查看>>
CSS动画之转换模块
查看>>
swift - UITextField 的用法
查看>>
检索和关闭游标+检索游标+关闭游标
查看>>
[开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
查看>>
iOS项目分层
查看>>
CocosCreator 小知识
查看>>
如何称为演讲高手
查看>>