2015-01-26 40 views
0

我以前在Eclipse CDT中使用过内容协助,但没有遇到问题。但是,对于一个新项目,我在使用C结构提示内容时遇到了问题。它准确地提示结构类型,而不是成员。Eclipse CDT内容协助未完成结构

我有内容辅助设置优先解析为基础的建议+基于解析的建议(任务为重点)。我根据其他建议取消了其他选择;似乎并不像它做任何事情,无论他们是否被选中。

下面是我想要得到的建议的结构:

/** 
* HAL DIN voltages 
*/ 
typedef struct 
{ 
    uint16_t din0; ///< din0 voltage 
    uint16_t din1; ///< din1 voltage 
    uint16_t din2; ///< din2 voltage 
    uint16_t din3; ///< din3 voltage 
    uint16_t din4; ///< din4 voltage 
    uint16_t din5; ///< din5 voltage 
    uint16_t din6; ///< din6 voltage 
    uint16_t din7; ///< din7 voltage 
}sDINVoltage; 

sDINVoltage test; // sDINVoltage will get suggested 
test.//No members get suggested 

有什么事,我可能是在如何我的项目指标的东西不见了?提前致谢!

回答

0

看起来它总是在工作!成员似乎只被建议,如果他们在一个函数内 - 例如:

sDINVoltage voltages_; 
voltages_. // No recommendation 

void test_func(void) 
{ 
    sDINVoltage voltages; 
    voltages.// Will get recommendation here 
} 

我试图得到一个函数以外的建议。 :)如果有人知道为什么发生这种情况,它仍然会很高兴知道!

0

回答你的问题为什么你在函数外面没有任何建议:不允许以这种方式设置函数外的结构成员。可能这就是为什么Eclipse CDT甚至不会给你一个建议。例如,这是不允许的:

test.din0 = 2; 

我用下面的代码尝试过自己刚才:

/* test.c */ 
typedef struct 
{ 
    char state1; 
} STATE_STR; 

STATE_STR state_str; 

state_str.state1='c'; 

void main() 
{ 
} 

编译Cygwin中我得到这个错误:

$ gcc test.c && ./a.exe 
test.c:8:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token 
state_str.state1='c'; 

(您可以使用以下代码来初始化您的结构:

typedef struct 
{ 
    char state1; 
} STATE_STR; 

STATE_STR state_str = {.state1='c'}; 

void main() 
{ 
}