2015-01-26 39 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() 
{ 
}