错误:枚举未在此范围内声明

error: enum was not declared in this scope

本文关键字:范围内 声明 枚举 错误      更新时间:2023-10-16

我在 ksql.h 中的枚举中添加了一个新值 (NULL_IS_NOT_NIL)

enum
{
    PKEY                  = 0x000001,
    NONCOLUMN             = 0x000010,
    EXPRESSION            = 0x000010,
    INSERTONLY            = 0x000100,
    NUMERIC               = 0x001000,
    NULL_IS_NOT_NIL       = 0x010000,
    MAXLEN_TABLENAME      = 50
};

不幸的是,这:

Row.SetExtras ("COMMENT2", KROW::NULL_IS_NOT_NIL);

引发错误。

db.cpp:7727: error: âNULL_IS_NOT_NILâ was not declared in this scope

另一方面

Row.SetExtras ("COMMENT2", 0x010000);

Row.SetExtras (vendor_id,  KROW::NUMERIC);

两者都工作正常,不会引发错误。现在我可以通过用0x010000替换NULL_IS_NOT_NIL来度过难关,但这是一个坏主意。我收到此错误的原因是什么?我错过了一些明显的东西吗?

您已在头文件中进行了更改,但它们未反映在项目中。如评论中所述,原因是由于它没有被推送到正确的文件夹。

你忘了给enum起一个名字:代码片段中缺少KROW

另一方面,如果你称之为 KROW ,你会得到一个重定义错误。所以你需要想出一个不同的解决方案。(除非您直接编辑系统头文件 - 但肯定不是...