3

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

4

1 回答 1

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.

于 2015-04-14T08:07:28.777 回答