我看到一些奇怪的行为,当我尝试使用sqlite进行iphone开发时,我无法在xcode 3.2.5中解释。
如果我执行以下语句,代码将转到代码块1,但值为rc = 1 SQLITE_OK是常量,值为0 如果代码块1正在执行,那么rc = 0不应该吗?
int rc;
if(rc=sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0) == SQLITE_OK){
//code block 1
}
我错过了什么?谢谢你的帮助。
答案 0 :(得分:0)
==
的优先级高于=
,因此它首先进行比较,然后将结果1分配给rc
。您需要将作业包装在括号中:
if ((rc = sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0)) == SQLITE_OK)