在我的代码中的某个地方,我有预处理器定义
#define ZOOM_FACTOR 1
在另一个地方我有
#ifdef ZOOM_FACTOR
#if (ZOOM_FACTOR == 1)
#define FONT_SIZE 8
#else
#define FONT_SIZE 12
#endif
#else
#define FONT_SIZE 8
#endif
问题是当我改变的时候ZOOM_FACTOR
价值floating point
值,例如1.5
,我收到编译错误C1017: invalid integer constant expression
.
有谁知道为什么我会收到此错误并且有什么方法可以进行比较integer
and floating point number
在预处理器指令中?
该错误是因为语言不允许。
根据 C++ 标准,[cpp.cond]/1:
控制条件包含的表达式应为整型常量表达式。
而不是定义ZOOM_FACTOR
作为浮点值1.5
,为什么不将其定义为该值的倍数。例如,乘以一个常数,例如2
然后进行比较。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)