реклама на сайте
подробности

 
 
> Не корректная работа цикла в CodeVision
Iptash
сообщение Sep 11 2011, 14:14
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 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 такой же косяк. Или я, что то не понимаю?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Sep 11 2011, 18:49
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Ну в ANSI C (C89, 1989 год) это уже было. Соответственно, должно было быть во втором издании K&R, которое уже базировалось на принятом стандарте.
Ну вот для определенности из стандарта C89
Цитата
3.3.16.1 Simple assignment
Constraints
One of the following shall hold:/42/
...
* the left operand has a qualified or unqualified version of a structure or union type compatible with the type of the right;

Цитата
3.3.15 Conditional operator
Syntax
conditional-expression:
logical-OR-expression
logical-OR-expression ? expression : conditional-expression

Constraints
The first operand shall have scalar type.
One of the following shall hold for the second and third operands:
...
* both operands have compatible structure or union types;
Т.е. можно вообще
Код
  struct foo a, b, c;
  a = flag ? b : c;


А с возвратом структур из функций -- так даже так (и это C, а не C++, и это 1989 год):
Цитата
3.3.2.3 Structure and union members
...
Example
If f is a function returning a structure or union, and x is a member of that structure or union, f().x is a valid postfix expression but is not an lvalue.



--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Iptash   Не корректная работа цикла в CodeVision   Sep 11 2011, 14:14
- - Палыч   В Ваших примерах проверка производится для разных ...   Sep 11 2011, 14:40
- - Iptash   Да, действительно, спасибо.   Sep 11 2011, 15:10
- - Юрий_СВ   А как ЭТО понимать ? Цитата(Iptash @ Sep 11 ...   Sep 11 2011, 16:40
|- - Iptash   Цитата(Юрий_СВ @ Sep 11 2011, 20:40) А ка...   Sep 11 2011, 16:46
|- - Юрий_СВ   Цитата(Iptash @ Sep 11 2011, 19:46) Нет, ...   Sep 11 2011, 17:38
- - Iptash   Структуру.   Sep 11 2011, 17:41
|- - Юрий_СВ   Цитата(Iptash @ Sep 11 2011, 20:41) Струк...   Sep 11 2011, 17:45
|- - Палыч   Цитата(Юрий_СВ @ Sep 11 2011, 21:45) Знач...   Sep 11 2011, 18:01
|- - Юрий_СВ   Цитата(Палыч @ Sep 11 2011, 21:01) В язык...   Sep 11 2011, 18:05
|- - Палыч   Цитата(Юрий_СВ @ Sep 11 2011, 22:05) И да...   Sep 11 2011, 18:22
|- - Юрий_СВ   Цитата(Палыч @ Sep 11 2011, 21:22) С тех ...   Sep 11 2011, 18:29
- - Iptash   Да нет, это копирование структуры одного типа, а н...   Sep 11 2011, 18:11
- - Idle   http://en.wikipedia.org/w/index.php?title=...e%29#...   Sep 11 2011, 18:27
- - Iptash   Да нет, Цитата6.2 Структуры и функции Единственно ...   Sep 11 2011, 18:40
- - Юрий_СВ   Цитата(ReAl @ Sep 11 2011, 21:49) Ну в AN...   Sep 11 2011, 19:36


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016