2015-01-26 9 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

당신이 왜 함수 밖에서 추천을 얻지 못하는지에 대한 질문에 답하기 위해서 : 그런 식으로 함수 밖에서 구조체의 멤버를 설정하는 것은 허용되지 않습니다. 아마도 그것이 이클립스 CDT가 당신에게 제안조차주지 않는 이유 일 것입니다. 예를 들어,이 허용되지 않을 것이다 :

test.din0 = 2; 

나는 다음과 같은 코드로 지금 자신을 그것을 시도 : (

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

:

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

STATE_STR state_str; 

state_str.state1='c'; 

void main() 
{ 
} 

은 Cygwin에서 컴파일 나는이 오류 다음 코드를 사용하여 구조를 초기화 할 수 있습니다.

typedef struct 
{ 
    char state1; 
} STATE_STR; 

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

void main() 
{ 
} 

)