Цель c: Использование значений констант #define в математических выражениях

Я новичок в разработке iPhone, я просто пробую несколько простых процедур рисования, и у меня проблемы с использованием определенных значений в простых math.

У меня есть такая строка:

int offset = (((myValue - min_value) * 6) - middle);

, и она отлично работает, но мне не нравится использовать там жестко закодированную цифру 6 (потому что я буду использовать ее во многих местах.

Так что я подумал, Я бы определил константу с помощью #define:

#define WIDTH_OFFSET 6;

, тогда я мог бы использовать:

int offset = (((myValue - min_value) * WIDTH_OFFSET) - middle);

, однако это приводит к ошибке компилятора: «Ожидаемое выражение».

Я могу обойти это, разбив вычисление на несколько строк :

int offset = myValue - min_value;
offset = offset * WIDTH_OFFSET;
offset = offset - middle;

Компилятор считает, что это нормально.

Я предполагаю, что здесь работает какое-то неявное приведение или какая-то другая языковая функция - может ли кто-нибудь объяснить мне, что происходит?

5
задан Pete McPhearson 23 January 2012 в 11:06
поделиться