Eclipse Luna CDT:什么是标题变体?

时间:2014-11-30 20:26:04

标签: eclipse eclipse-cdt codan

我很难让Eclipse Indexer(Codan)识别头文件中的某些数据声明。对Index all header variants有一个新的偏好,但很少解释这意味着什么。启用首选项似乎可以解决问题。但我仍然想知道这种偏好究竟是什么。

1 个答案:

答案 0 :(得分:3)

假设你有这样的标题a.h

#pragma once

#ifndef SYMBOL
#define SYMBOL int
#endif

struct S
{
  SYMBOL sym;
};

现在如果你包括这样的标题:

struct UserSymbol
{
  int i, j, k;
};

#define SYMBOL UserSymbol

#include "a.h"

S var;

int main()
{
  var.sym.i = 123;
  return 0;
}

然后Eclipse CDT可能无法识别sym.i

您可能有更复杂的示例,包含更深层次的嵌套内容等。

编辑:

但是,如果将a.h包含在“索引所有特定标题的变体”列表中或选中“索引所有标题变体”,Eclipse将构建a.h索引的多个变体并将“知道”您已定义特定的SYMBOL