我是iPhone开发的新手,现在正在尝试一些简单的绘图例程,但在使用简单的数学计算时遇到了麻烦。
我有这样一行代码:
int offset = (((myValue - min_value) * 6) - middle);
这个可以正常工作 - 但我不喜欢在其中使用硬编码的6(因为我会在很多地方使用它)。
所以我想使用 #define 定义一个常量:
#define WIDTH_OFFSET 6;
那么我可以使用:
int offset = (((myValue - min_value) * WIDTH_OFFSET) - middle);
然而 - 这将会导致编译错误: "Expected Expression."
我可以通过将计算拆分成几行来解决此问题:
int offset = myValue - min_value;
offset = offset * WIDTH_OFFSET;
offset = offset - middle;
编译器认为这是可以的。 我猜测这里有一些隐式转换或其他语言特性在起作用 - 有人能解释一下正在发生什么吗?