我在这里做错了什么:
我有2 structs
:
typedef struct Boundaries{
int f[11];
int t[11];
int d[11];
} boundaries;
typedef struct STNODE {
char name;
int addr;
const char* type;
int _size;
boundaries b;
int cell_size;
} stnode;
我创建了一个stnode
:
stnode ST[24];
当我尝试访问stnode
的字段时(即点'.'
),我会收到所有字段name
,addr
,type
, _size
,b
,cell_size
。问题是我无法访问b
的字段。这个表达式:
ST[i].b.
打开stnode
的变量。它不应该让我从b
的变量中选择吗? (f[]
,t[]
,d[]
)
由于
修改
对于那些不明白我的意思的人来说,“打开变量”,这是一个快照:
答案 0 :(得分:0)
哦,现在我知道这是什么了。
代码::阻止自动填充是只是简单,它永远不会做你想要的。如果它做了它应该认为自己幸运的事情。我已经使用code :: blocks做了5年的复杂项目,而且由于任何原因,我的大部分功能都失败了。 例如,错误跟踪,当您双击编译错误时,它会将您带到文件和发生错误的行,如果源的路径是相对路径,则这不起作用。 我所说的就是解析不是最好的,我甚至看到自动完成系统只是在引擎盖下崩溃拒绝显示帮助,我不得不重新启动以使其再次工作。
除了这些之外,一些idom会影响自动完成处理的方式。 其中最直接的是perprocessor,如果预处理器指令处理定义,则必须明确指定自动完成将忽略该定义。检查自动完成系统是否存在问题的一种方法是将问题中的定义直接复制到您正在使用的文件中(如果它尚未存在)。如果它在那里不起作用,你就无法做很多事情。如果它确实有效,你应该检查这些定义的方式和位置,因为有些预处理程序指令可能会使其失效,使其对自动完成系统不可见。