Цель C: Как 7 - 1 = 3? - PullRequest
       37

Цель C: Как 7 - 1 = 3?

7 голосов
/ 11 марта 2011
NSLog(@"Before: %d",currentArticle);
currentArticle--;
NSLog(@"SUBTRACT %d",currentArticle);

"currentArticle" является целым числом.Это только один раз повторяется в моей консоли.Если я не выполню это вычитание, число «currentArticle» останется равным 7.

Это выполняется в главном потоке и запускается только один раз для взаимодействия с пользователем.

Я также пытался

currentArticle = currentArticle - 1;

С тем же результатом.Я принимаю сумасшедшие таблетки?

Спасибо!

Редактировать:

Объявлен следующим образом:

extern int *currentArticle;

И назначен позже как:

currentArticle = 0;

Я попытался переписать так:

int *curArticle; // in my .h file

curArticle = 1;

А затем я запускаю

curArticle--;

, и он все еще уменьшается на два ...

Я прошел по коду и убедился, что больше нет вызовов, обращающихся к этой переменной. Спасибо за отзыв, я буду продолжать взламывать его.

Ответы [ 2 ]

17 голосов
/ 11 марта 2011

Я согласен с комментариями выше.Я бы поспорил на доллар, как выглядит ваш код:

int *currentArticle = 7; // or something

currentArticle может даже не указатель на int, в частности, но это, скорее всего, указатель на некоторый 4-байтовый тип.Операторы '-' и '++', когда применяются к указателям, уменьшают или увеличивают на размер указанного типа.

1 голос
/ 11 марта 2011

Вещи, о которых я думаю: темы (если это странная проблема, есть темы)? Или это вызвано событием (которое срабатывает более одного раза)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...