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

 
 
> Еще глюк кейловского компилятора
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
Ответов
sergeeff
сообщение Aug 31 2011, 06:14
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Не приведет он таких примеров. Старый добрый VS 6.0:

Код
C:\my_proj\VC++\classtst\main.cpp(23) : error C2562: 'Options' : 'void' function returning a value


Go to the top of the page
 
+Quote Post
777777
сообщение Aug 31 2011, 06:30
Сообщение #3


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

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



Цитата(sergeeff @ Aug 31 2011, 10:14) *
Не приведет он таких примеров. Старый добрый VS 6.0:

Код
C:\my_proj\VC++\classtst\main.cpp(23) : error C2562: 'Options' : 'void' function returning a value


Да, верно, в VC 6.0 тоже был такой глюк, но уже в VC 7.1 его исправили. AVR Studio тоже успешно компилрует такой код, при этом многие считают gcc за эталонный компилятор. Наконец, об этом напрямую написано в стандарте.

Цитата(GetSmart @ Aug 31 2011, 10:26) *
Чужие значит чужие.

Меня не интересуют чужие программы.
Цитата(GetSmart @ Aug 31 2011, 10:26) *
На чём основано ваше заявление в конце первого поста?

На стандарте Си. Если угодно, я покопаюсь и найду это место, но я точно знаю что оно есть, так как на эту тему несколько лет назад была дискуссия в rsdn.ru о компиляторе VC 6.0, после чего этот глюк исправили в VC 7.1.

Сообщение отредактировал 777777 - Aug 31 2011, 06:31
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 31 2011, 07:07
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(777777 @ Aug 31 2011, 11:30) *
на эту тему несколько лет назад была дискуссия в rsdn.ru о компиляторе VC 6.0

Наверняка там как и здесь говорилось о плохой читабельности такого кода. Поэтому от такого "глюка" больше пользы.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 31 2011, 07:34
Сообщение #5


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

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



Цитата(GetSmart @ Aug 31 2011, 11:07) *
Наверняка там как и здесь говорилось о плохой читабельности такого кода. Поэтому от такого "глюка" больше пользы.

Какие вы все нежные. А работать с алгоритмом рекурсивного спуска вам не приходилось? А что не так с читабельностью? Вы считаете более читабельной программу в которой в 3 раза больше строк?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 31 2011, 07:49
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(777777 @ Aug 31 2011, 10:34) *
Вы считаете более читабельной программу в которой в 3 раза больше строк?

О каких "в 3 раза больше строк" Вы постоянно говорите если вместо return ErrOptions(); написать { ErrOptions(); return; }
А то и вовсе в той же строке с if
Go to the top of the page
 
+Quote Post



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

 


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


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