2012-06-06 4 views
-3

У меня проблемы с написанием кода на моем PIC 16F690.
Я использую PIC C Compiler v4.099.
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 is 20 – user1440717

+0

Какое имя вы изменили? В вашем примере используется то же имя «индекс», что и ваша проблема. Попробуйте использовать имя «bob», где вы ранее использовали «индекс» и видите, улучшается ли он. Сообщение Роба, как правило, усиливает мой аргумент, что «индекс» - это макрос, или фрагмент текста, который перед компиляцией расширяется до других битов текста. Коэффициенты - это те «другие биты текста», которые не делают то, что вы хотите. –

+0

Я изменил индекс на parcourindex, но я не вижу никакого улучшения, это не имеет значения, как я его называю, он просто не работает – user1440717

Смежные вопросы