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

 
 
> Еще глюк кейловского компилятора
777777
сообщение Aug 31 2011, 05:57
Сообщение #1


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Код
void ErrOptions()
    {
    Reply.Stat = 15;
    SendReply();
    }

void Options()
    {
    ...
    ...
    if(Command.Data[i++] >= ZOND_SIZE)
        return ErrOptions();
    }


error: #118: a void function may not return a value

На самом деле void function может возвращать void value, "возвращаемое" другой void функцией.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
richie
сообщение Aug 31 2011, 06:08
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261



Хм, а зачем такой гемморой изобретать?
В одной void функции returna нет, а в другой зачем-то понадобился.
Чем простая запись не подходит:
....
if(Command.Data[i++] >= ZOND_SIZE) {
ErrOptions();
return;
}
Лаконично и понятно будет другому человеку, и самому себе даже через несколько месяцев.

ИХМО. Если есть неопределенность в спецификации изобретаемой функции, то всегда делай её с кодом возврата.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 31 2011, 06:25
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(richie @ Aug 31 2011, 10:08) *
Лаконично и понятно будет другому человеку, и самому себе даже через несколько месяцев.

Увеличение числа строк в 3 раза вы называете лаконичностью?

Цитата(GetSmart @ Aug 31 2011, 10:08) *
А привести чужие примеры такого кода можете?

Что значит "чужие"?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:17
Рейтинг@Mail.ru


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