외부 C 코드 (원래 내장 된 HW에서 실행 중)로 PC에서 작업해야하는데 수정이 허용되지 않습니다. 하나 개 .H 파일 모양이 같은에서ANSI C 변수 선언 구문 "+0"?
일부 변수 선언 : variableA의
extern int variableA;
extern variableB;
extern variableC+0;
- 선언은 분명하다.
- 변수 B의 선언은 컴파일러를 통과하며 형식은 int로 간주됩니다.
- 변수 C의 선언이 실패합니다.
질문 : 구문 어떤 종류의 variableC의 선언에 사용되는 ? 컴파일러가 그것을 받아들이도록 (어떻게 코드 수정이 허용되지 않습니까?) 어떻게 할 수 있습니까? 이것은 유효한 C 구문일까요?
프로젝트에 사용 된 컴파일러는 VS2008 내부 컴파일러입니다.
는업데이트 : 다시 추적
을 포함, 어떤 #DEFINE는 구문을 변경하지 않습니다. 참고로,이 코드는 항공기의 HW에서 가져온 것이고 올바르게 컴파일됩니다 (HW 용 컴파일러 사용). 변수는 나에게 사용할 수있는 코드 부분에서 일반 변수로 사용됩니다 답장에 대한
variableC+0 = otherVar;
감사합니다,이는 정말 해당 특정 컴파일러 작업, 무효 표준 C 코드 것으로 보인다.
이것은 유효한 구문처럼 보이지 않습니다. 적어도 ANSI C에는 없습니까? – Eregrith
어떤 다른 정보가 있습니까? variableC는 코드의 뒷부분에서 어떻게 사용됩니까? extern variableC + 0;이'extern a = 3 + 0; '과 같이 확장 될 수 있도록 매크로일까요? 이 코드가 성공적으로 컴파일되었다는 증거가 있습니까? 전처리 기 조건 때문에 컴파일되지 않은 코드입니까? –
'int a + 0;'명령문은 의미가 없으며 비슷한 구조로 보입니다. –