SQLITE_OK приравнивается к 1 - PullRequest
       1

SQLITE_OK приравнивается к 1

0 голосов
/ 26 декабря 2010

Я вижу странное поведение, которое не могу объяснить в xcode 3.2.5 при попытке использовать sqlite для разработки iphone.

Если я выполню следующую инструкцию, код перейдет к блоку кода 1, но значение rc = 1 SQLITE_OK является константой со значением 0 не должен rc = 0, если кодовый блок 1 выполняется?

int rc;
if(rc=sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0) == SQLITE_OK){
    //code block 1
}

Чего мне не хватает? Спасибо за помощь.

1 Ответ

0 голосов
/ 26 декабря 2010

== имеет более высокий приоритет, чем =, поэтому сначала выполняется сравнение, затем присваивается результат 1 * rc. Вам нужно обернуть задание в скобках:

if ((rc = sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0)) == SQLITE_OK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...