内容辅助建议无法访问的变量和函数

时间:2017-03-22 13:06:17

标签: eclipse-cdt content-assist

当我编辑源文件并使用内容辅助时,我不希望它建议变量/函数/等。来自我没有包含的其他源文件。它应该只显示当前文件和包含的标题中的内容。我怎样才能使内容辅助不能建议无法访问的变量和函数?如果没有办法实现这一点,那么对于一个优秀的IDE来说,坦率地说这是一个荒谬的缺陷。

有趣的是,昨天似乎我通过将源文件移动到另一个文件夹来实现它,但今天,如果我不在" C / C ++ General中列出源文件夹 - >路径和符号 - >源位置",我在源文件中得到未解决的内容(索引器甚至无法解析标准库函数),如果我确实列出了文件夹,那么我将回到原点和内容辅助建议再次使用无法访问的变量/函数。

1 个答案:

答案 0 :(得分:0)

CDT不会在代码完成中显示不可访问的内容。您面临的问题是无法访问的AFAICT的定义。

在C中,非静态的一切都是" public"并且可以从其他任何地方调用。甚至不需要声明(虽然我建议-Wall -Werror,但这是一个单独的讨论。)

例如,考虑file.c的内容:

static void func_private1(void) {}
static void func_private2(void) {}
void func_public1(void) {}
void func_public2(void) {}

如果您在func_中请求file.c的完成次数,则会获得所有完成次数:

enter image description here

但是,如果您打开另一个文件并请求func_的完成,则只能获得公共文件(非静态):

enter image description here

现在,在另一个文件中,如果选择func_public1,则可以让CDT自动添加到头文件中。您可以使用"组织导入" Shift - Ctrl - O (来源菜单 - > 整理进口)。

您可以在首选项中控制“组织导入”的行为(C / C ++ - >代码样式 - >组织导入)

enter image description here