在C中定义“between”宏的最佳方法
发布时间:2020-12-16 10:20:46 所属栏目:百科 来源:网络整理
导读:什么是定义宏之间的最佳方法,类型为泛型(char,int,long) 如果数字在输入的其他数字之间,则返回true. 我试图谷歌,但我没有找到任何东西. 编辑:给出的两个边界的顺序无关紧要.所以它可以更一般. 解决方法 如果您执行以下操作: #define BETWEEN(a,b,c) (((a)
什么是定义宏之间的最佳方法,类型为泛型(char,int,long)
如果数字在输入的其他数字之间,则返回true. 我试图谷歌,但我没有找到任何东西. 编辑:给出的两个边界的顺序无关紧要.所以它可以更一般. 解决方法
如果您执行以下操作:
#define BETWEEN(a,b,c) (((a) >= (b)) && ((a) <= (c))) 你会对a的双重评价有问题.想想如果你使用具有副作用的功能会发生什么…… 你应该做一些像这样的事情: #define BETWEEN(a,c) ({ __typeof__ (a) __a = (a); ((__a) >= (b) && ((__a) <= (c)) }) (编辑因为结果不应该取决于b和c的顺序): #define BETWEEN(a,c) ({ __typeof__ (a) __a = (a); __typeof__ (b) __b = (b); __typeof__ (c) __c = (c); (__a >= __b && __a <= __c)|| (__a >= __c && __a <= __b)}) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ruby-on-rails – 如何从Rails中的控制器中访问路
- c# – HttpHeaders.TryAddWithoutValidation的目
- ruby – TypeError:无法访问Arel :: Nodes :: U
- wxWidgets库的依赖顺序
- reactjs – React Redux组件不会更新
- react---后台管理系统推荐(ant disgin)
- ruby-on-rails – 使用Solr全文搜索不规则的说唱
- ruby-on-rails – Model.delete_all并让id从1开始
- react native学习笔记5——布局实战篇
- 仿淘宝图片空间 点击文字 出现可编辑文本框 提交
热点阅读