g_scanner_scope_add_符号中的scope_id参数代表什么?

g_scanner_scope_add_符号中的scope_id参数代表什么?,c,glib,C,Glib,当使用词汇扫描仪GScanner时,我想添加我自己的符号进行扫描。在查找信息时,我只找到API文档和其他人的源代码,如Gimp。没有任何关于scope做什么的解释,除非我遗漏了一些明显的东西 我可以使用g_scanner_add_symbol并忽略这个问题,但g_scanner_add_symbol已被弃用,只剩下g_scanner_scope_add_symbol了。我了解如何使用此函数向自定义扫描仪添加符号,但我仍然不知道参数scope_id的用途。我可以每次都把它设为零,不用担心。问题是我

当使用词汇扫描仪GScanner时,我想添加我自己的符号进行扫描。在查找信息时,我只找到API文档和其他人的源代码,如Gimp。没有任何关于scope做什么的解释,除非我遗漏了一些明显的东西

我可以使用g_scanner_add_symbol并忽略这个问题,但g_scanner_add_symbol已被弃用,只剩下g_scanner_scope_add_symbol了。我了解如何使用此函数向自定义扫描仪添加符号,但我仍然不知道参数scope_id的用途。我可以每次都把它设为零,不用担心。问题是我不喜欢神秘,我觉得scope_id可能非常有用。我想知道它有多有用


GScanner中的scope_id代表什么?我如何利用它?

我想您可以使用scope来拥有不同的符号集。大概是这样的:

...
g_scanner_set_scope (scanner, first_scope);
g_scanner_scope_add_symbol (scanner, first_scope, "ONE", GINT_TO_POINTER(1));
...
g_scanner_set_scope (scanner, second_scope);
g_scanner_scope_add_symbol (scanner, second_scope, "TWO", GINT_TO_POINTER(2));
// The scanner wont find the symbol "ONE" now

我不完全确定这一点,但这就是我认为scopes的用途。不过,您可以很容易地测试它。

我想您可以使用作用域来拥有不同的符号集。大概是这样的:

...
g_scanner_set_scope (scanner, first_scope);
g_scanner_scope_add_symbol (scanner, first_scope, "ONE", GINT_TO_POINTER(1));
...
g_scanner_set_scope (scanner, second_scope);
g_scanner_scope_add_symbol (scanner, second_scope, "TWO", GINT_TO_POINTER(2));
// The scanner wont find the symbol "ONE" now

我不完全确定这一点,但这就是我认为scopes的用途。不过,您可以轻松地对其进行测试。

是的,自从我上次尝试使用GScanner以来,已经有一段时间了。有可能我已经试过了,但我会试一试。谢谢。是的,我已经有一段时间没有试过使用GScanner了。有可能我已经试过了,但我会试一试。谢谢