2012-06-06 3 views
-3

메신저 내 PIC 16F690에 몇 가지 코드를 작성하는 데 문제가 있습니다.
PIC C 컴파일러 v4.099를 사용 중입니다.
PIC 칩 16F690

IM 이런 배열에 대한 인덱스로서 INT 변수를 전달하려고 : 어떤 이유로

int myArray[2] = {20, 20}; 
int index = 0; 
void myFunction() 
{ 
    int iTest = myArray[index]; 
} 

코드 그다지 작업을하지만에서 myArray [인덱스]에서 인덱스를 교체
이 myArray [0]과 같은 0으로, 그것은 잘 작동합니다.

아무도 나에게 무엇을 잘못하고 있는지 설명 할 수 있습니까?
Greetz 토리코

+3

"작동하지 않는다"는 것은 무엇을 의미합니까? 그것은 추락합니까? 예기치 않은 행동을하십니까? 토스트 굽기? 심한 이메일을 보내시겠습니까? – JoeFish

+0

PIC C 컴파일러가 아니라 CCS 컴파일러를 사용하고 있다고 말할 확률은 뛰어납니다. –

답변

0

"index"는 내 컴파일러의 내장 함수이므로 사용자가 "작동하지"않는 이유 일 수 있습니다. 어떤 기회가 임베디드 프로그래밍에서

+0

그리고 여기에 나는 단지 추측했다 ... 나의 추측이 완전히 부정확하지 않다는 것을 알고 기뻐! –

0

는, 일반적으로 C 프로그램이 제대로

C.

컴파일 당신의 잘린를 실행하기 위해 시스템을 다시 부트 스트랩을 포함하는 더 큰 전체의 일부가 당신의 프로그래밍 환경에서, 이름 "index"는 이미 일부 함수에 대해 예약되어 있습니다. 그러면 배열의 길이를 지나가고 있습니까?

+0

다른 이름으로 바꿀 때마다 < int iTest = myArray [index]; iTest가 null입니다. int iTest = myArray [0]; iTest는 20 – user1440717

+0

무엇이 변경 되었습니까? 귀하의 예제는 귀하의 문제와 동일한 "색인"이름을 사용합니다. 이전에 "색인"을 사용했던 곳에서 "밥"이라는 이름을 사용해보고 개선되는지보십시오. Rob의 글은 "색인"이 매크로이거나 컴파일하기 전에 텍스트의 다른 비트로 확장되는 텍스트라는 내 주장을 강화하는 경향이 있습니다. 확률은 "다른 텍스트 비트"가 원하는 것을하지 않는 것입니다. –

+0

인덱스를 parcourindex로 바꿨지 만 어떤 개선점이 보이지 않는다. 어떻게 호출해도 문제가 없다. – user1440717