|
Не корректная работа цикла в CodeVision |
|
|
|
Sep 11 2011, 14:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Здравствуйте все. Столкнулся с таким косяком. Проверка структуры в WHILE и FOR не работает. Вот например: Код while(program[i].indkey != STOP) { program[i]= ee_prog[i]; i++; } нет проверки, цикл уходит в бесконечность. Проверяю в AVR studio. А так: Код while(st != STOP) { program[i]= ee_prog[i]; st = program[i].indkey; i++; } работает. Пробывал в разных версиях. В цикле FOR такой же косяк. Или я, что то не понимаю?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Sep 11 2011, 16:40
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272

|
А как ЭТО понимать ? Цитата(Iptash @ Sep 11 2011, 17:14)  program[i]= ee_prog[i]; Это Си++ ?
Сообщение отредактировал Юрий_СВ - Sep 11 2011, 16:41
|
|
|
|
|
Sep 11 2011, 17:38
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272

|
Цитата(Iptash @ Sep 11 2011, 19:46)  Нет, я из EEPROM загружаю в SRAM. Структуру или указатель на неё ?
|
|
|
|
|
Sep 11 2011, 17:45
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272

|
Цитата(Iptash @ Sep 11 2011, 20:41)  Структуру. Значит вам надо внимательнее читать книжки по Си.
|
|
|
|
|
Sep 11 2011, 18:05
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272

|
Цитата(Палыч @ Sep 11 2011, 21:01)  В языке Си структуры копируются оператором присваивания. И давно так ?  Тогда, наверное, мне пора за книжки.  Я думал, что имя структуры - это указатель и данное действие не что иное, как копирование указателя. Такие фокусы (копирование структур присваиванием) возможны только в Си++.
Сообщение отредактировал Юрий_СВ - Sep 12 2011, 01:22
|
|
|
|
|
Sep 11 2011, 18:29
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272

|
Цитата(Палыч @ Sep 11 2011, 21:22)  С тех пор, как K&R придумали язык Си. Цитата Керниган, Ричи. Язык C
6.2 . Структуры и функции ... В языке "C" существует ряд ограничений на использование структур. Обязательные правила заключаются в том, что единс- твенные операции, которые вы можете проводить со структура- ми, состоят в определении ее адреса с помощью операции & и доступе к одному из ее членов. Это влечет за собой то, что структуры нельзя присваивать или копировать как целое, и что они не могут быть переданы функциям или возвращены ими. http://www.lucky.net/docs/kernigan.htmlhttp://ahdl-altera.narod.ru/ru/richi_c.pdf
Сообщение отредактировал Юрий_СВ - Sep 11 2011, 18:50
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|