2012-06-06 55 views
-3

即时通讯我的PIC 16F690写一些代码有问题。
使用PIC C编译器v4.099的Im。
PIC芯片16F690

即时试图int变量作为索引传送到一个这样的数组:

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

由于某种原因该代码不工作,但是当我更换指数myArray的[指数]
与这样的零像myArray [0],它工作正常

任何人都可以解释我什么即时做错了?
Greetz Rico

+3

你能向我们解释一下“不起作用”的含义吗?它会崩溃吗?出乎意料的行为?烤你的烤面包?给你发送讨厌的电子邮件? – JoeFish

+0

可能性非常好,你的意思是说你使用的是CCS编译器,而不是PIC C编译器。 –

回答

0

“index”是我的编译器的一个内置函数,所以这可能是为什么它不能在你的“工作”。

+0

在这里,我只是猜测...很高兴知道我的猜测并不完全不准确! –

0

在嵌入式编程,通常你的C程序是一个更大的整体,它包括引导正确的重置系统来运行你的编译文档片断C.

的部分是否有任何机会,在你的编程环境,这个名字“index”已经被保留给某个函数,然后它正在走过你的数组长度?

+0

每当我将其更改为另一个名称,它也不起作用< int iTest = myArray [index]; iTest为空 int iTest = myArray [0]; iTest是20 – user1440717

+0

你改变了什么名字?您的示例使用与您的问题相同的名称“索引”。尝试使用以前使用“索引”的名称“bob”,看看它是否有所改进。罗布的文章倾向于强化我的观点,即“索引”是一个宏,或者是在编译之前扩展到其他文本片段的一段文本。赔率是那些“其他位文字”不会做你想要的。 –

+0

我已将索引更改为parcourindex,但我没有看到任何改进,它不管怎么称呼它,它只是不工作 – user1440717