Sqlite3.c 中的 For 循环语法错误

发布于 2024-11-14 01:08:25 字数 542 浏览 2 评论 0原文

cppcheck 确定以下语句在 sqlite3.c 中产生语法错误:

for(i=0; inDb; i++){

完整功能:

SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *db){
  int i;
  Btree *p;
  assert( sqlite3_mutex_held(db->mutex) );
  for(i=0; i<db->nDb; i++){
    p = db->aDb[i].pBt;
    if( p && p->sharable ){
      assert( p->wantToLock>0 );
      p->wantToLock--;
      if( p->wantToLock==0 ){
        unlockBtreeMutex(p);
      }
    }
  }
 }

我不明白它是怎么回事语法错误。请解释一下。这是误报吗?

cppcheck has determined that the following statement produces a syntax error in sqlite3.c:

for(i=0; i<db->nDb; i++){

Full function:

SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *db){
  int i;
  Btree *p;
  assert( sqlite3_mutex_held(db->mutex) );
  for(i=0; i<db->nDb; i++){
    p = db->aDb[i].pBt;
    if( p && p->sharable ){
      assert( p->wantToLock>0 );
      p->wantToLock--;
      if( p->wantToLock==0 ){
        unlockBtreeMutex(p);
      }
    }
  }
 }

I do not see how it is a syntax error. Please explain. Is this a false positive?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

信仰 2024-11-21 01:08:25

看起来像是误报,但是我无法使用 Cppcheck 1.48 和 SQLite 3.7.6.3 的 C 源代码重现它。

如果您使用不同的源或不同的版本,请将其记录为错误

Looks like a false positive, however I can't reproduce it using Cppcheck 1.48 and C source code for SQLite 3.7.6.3.

If you're using different source or a different version, please log it as a bug.

物价感观 2024-11-21 01:08:25

CppCheck 可能错误地解析了比较表达式。
尝试添加一些空格或括号来帮助解决,
原文:

i<db->nDb

修改:

i < db->nDb

这只是我的猜测。

CppCheck may be parsing the comparison expression incorrectly.
Try adding some spaces or parenthesis to help out,
Original:

i<db->nDb

Modified:

i < db->nDb

This is just my guess.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文