странный iOS 5.0 SDK GCC побочный эффект на устройствах 4.2.x - PullRequest
0 голосов
/ 20 января 2012

Я создаю библиотеку на основе SDK 5.0 GCC и запускаю код на устройстве 4.2.x.

Я не использую специфичные для 5.0 target-c вызовы в этом слое, и проект совместимотправить на 4.0 +.

Я вижу в моей библиотеке какое-то поведение, которое действительно странно с моими блоками if.

Обычно это должно работать

BYTE    byteVal : 1;

byteVal = FALSE;

if (byteVal)
    // ALWAYS RUNS

проблема в том, что код в блоке if всегда выполняется.

Это вызывает у меня проблемы с функциональностью zlib gzip.Использует ли ОС 4.2.x какое-либо смещение или другое выравнивание регистров, которое не является стандартным при сборке с более новым GCC?

Я в недоумении относительно того, что здесь происходит, и почему это всегда не срабатываетУстройства 4.2.х.

Есть мысли?

1 Ответ

0 голосов
/ 22 февраля 2012

use

if (byteVal == 1)

При использовании переменных-членов одного бита существует некоторая проблема, заключающаяся в том, что if (byteVal) всегда имеет значение true, даже если это не так.

...