Pet*_*son 4 iphone objective-c
我是iPhone开发的新手,我只是尝试了一些简单的绘图程序,而我在使用简单数学中的定义值时遇到了麻烦.
我有这样一条线:
int offset = (((myValue - min_value) * 6) - middle);
Run Code Online (Sandbox Code Playgroud)
这工作正常 - 但我不喜欢在那里使用硬编码6(因为我将使用它很多地方.
所以我想我会使用#define定义一个常量:
#define WIDTH_OFFSET 6;
Run Code Online (Sandbox Code Playgroud)
然后我可以使用:
int offset = (((myValue - min_value) * WIDTH_OFFSET) - middle);
Run Code Online (Sandbox Code Playgroud)
但是 - 这会产生编译器错误:"预期表达式".
我可以通过将计算分解为几行来解决这个问题:
int offset = myValue - min_value;
offset = offset * WIDTH_OFFSET;
offset = offset - middle;
Run Code Online (Sandbox Code Playgroud)
编译器认为这很好.
我猜这里有一些隐含的演员或其他一些语言功能 - 有人可以向我解释发生了什么吗?
das*_*ght 14
删除分号;
后#define
:
#define WIDTH_OFFSET 6
Run Code Online (Sandbox Code Playgroud)
#define
从字面上替换它的参数,所以你的预处理后的表达式变成了
(((myValue - min_value) * 6;) - middle);
Run Code Online (Sandbox Code Playgroud)
如您所见,表达式中间有一个分号,这是一个语法错误.
另一方面,你的另一个表达方式
int offset = myValue - min_value;
offset = offset * WIDTH_OFFSET;
Run Code Online (Sandbox Code Playgroud)
没有表现出这样的问题,因为连续有两个分号
offset = offset * 6;;
Run Code Online (Sandbox Code Playgroud)
在语法上是有效的.
归档时间: |
|
查看次数: |
3285 次 |
最近记录: |