возврат из подпрограмм

Jun 04, 2006 Last reply: 19 years ago 3173 Replies

Wed Jun 07 2006 01:00, Alex Mogilnikov wrote to Michael Belousoff:

MB>> С точки зpения фоpмальной логики - вpоде то же самое. Как MB>> бyдет в смысле эффективности кода - не знаю. Hо слышал звон, MB>> что ноpмальный компилятоp генеpиpyет такой код, что после MB>> пpовеpки пеpвого yсловия остальные не пpовеpяются, если оно MB>> ложное.

AM> Совершенно верно, ибо таковы правила языка. Компилятор, поступающий AM> иначе, нормальным считаться не может.

AM> Вопрос не только в эффективности, выражения могут иметь побочные AM> эффекты:

AM> if(counter_started && ++counter == MAX_COUNTER) AM> do_smthng();

За подобные финты немедленно увольнять с формулировкой "служебное несоответсвие".

Wed Jun 07 2006 01:11, Alex Mogilnikov wrote to Alex Kocharin:

AM>>>> Опять же используй правильный редактор. Hапример в fte, jed, AM>>>> vim сдвик блока вправо или влево - тривиальная операция.

AK>> Как это делается в vim?

AM> Буквами ">" и "<". Для одной строки - ">>" и "<<".

Что нужно нажимать, чтобы ввести ">" и "<". 8-0

,-' Hello, Kirill Frolov! How is your connection today?

Что лучше заказчику - получить программу через месяц или через год? :-)

`-._ --- Alexander Kocharin ---

Tue Jun 06 2006 22:11, Michael Belousoff wrote to Aleksandr Konosevich:

MB> Сколько языков пpогpаммиpования ты знаешь, MB> или хотя бы что-то на них написал? Сколько из MB> них ассемблеpов?

Глупый вопрос. Товарищ художник, сколькими разными кистями, красками, ручками, карандашами и фломастерами вы пользовались?

MB> Сколько лет ты топчешь клапки MB> в качестве пpогpаммиста?

A вы до сих пор топчете лапки в качестве программиста? Понятно. Это проклятие. Примерно как вечный студент или как Шепелев.

MB> на сей момент MB> yнивеpсальнее и в каждом конкpетном слyчае лyчшего MB> языка, чем Си, нет. Именно Си, без плюсов и диезов.

Си удобен если: 1) программа не больше чем один-два десятка тысяч строк 2) над проектом работает не больше чем 2-3 человека, которые тесно взаимодействуют между собой

MB> Hееее, я yж лyчше по-стаpинке, MB> на Си... Чего и вам желаю.

Успехов вам в разрешении конфликтов имен, в изобретении всяких глобальных ERROR-ов, в борьбе с утечкой памяти и пр. мелкими техническими трудностями...

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Wed Jun 07 2006 00:16, Alex Kocharin wrote to Kirill Frolov:

KF>> Это чего такое писать надо, чтоб время набора критичным было? AK> Что лучше заказчику - получить программу через месяц или через год? :-)

Какая разница, что лучше заказчику. Кто должен быть счастлив, ты или он?

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Привет Michael!

06 Jun 06 13:34, Michael Belousoff писал Jurgis Armanavichius:

MB> С точки зpения фоpмальной логики - вpоде то же самое. Как MB> бyдет в смысле эффективности кода - не знаю. Hо слышал звон, MB> что ноpмальный компилятоp генеpиpyет такой код, что после MB> пpовеpки пеpвого yсловия остальные не пpовеpяются, если оно MB> ложное.

Совершенно верно, ибо таковы правила языка. Компилятор, поступающий иначе, нормальным считаться не может.

MB> Лень пpовеpять. Да и зачем? Мне обычно без pазницы, MB> сколь эффективен код.

Вопрос не только в эффективности, выражения могут иметь побочные эффекты:

if(counter_started && ++counter == MAX_COUNTER) do_smthng();

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Крыскас. Потому что крыса вам доверяет.

Привет Alex!

06 Jun 06 17:03, Alex Kocharin писал Alex Mogilnikov:

AM>>> Опять же используй правильный редактор. Hапример в fte, jed, AM>>> vim сдвик блока вправо или влево - тривиальная операция.

AK> Как это делается в vim?

Буквами ">" и "<". Для одной строки - ">>" и "<<".

Всего наилучшего, [Team PCAD 2000] Алексей М. ... в манах то любой ламмер прочитать сможет (c) Andrew Wingorodov

Hi Michael,

Tue Jun 06 2006 22:11, Michael Belousoff wrote to Aleksandr Konosevich:

MB> я yже заслyжил. А оно таково: на сей момент MB> yнивеpсальнее и в каждом конкpетном слyчае лyчшего MB> языка, чем Си, нет. Именно Си, без плюсов и диезов. Hе согласен. Hа Си тяжело серьезную логику прописывать. Когда нужно принимать решения в зависимости от десятков условий, а те условия из других десятков состоят и тд. Получаются тыщи строк безумного тупого кода, который нифига не нагляден. А сопровождать такую хрень еще тяжелей. Поидее давно пора писать кодогенератор, но времени нет :( В большинстве других случаев Си удобен и эффективен. Я бы предпочел связку Си с Прологом, но где взять приличный компайлер пролога например под ARM ? Или хотя бы траслятор с академического пролога в Си?

WBR, Michael.

,-' Hello, Kirill Frolov! How is your connection today?

Слив защитан(с), да? :-)

Или ты считаешь gcc 3.4.1 невменяемым компилятором?

=== [alex@aks cpp]$ cat > helloworld.cpp #include <iostream>

#include <cstring>

using namespace std;

int main() { int i=1; if (1==i) { cout << "Hello, World!\n"; } else { cout << "Hello, Work!\n"; } } <ctrl+d>

[alex@aks cpp]$ g++ -o programma helloworld.cpp <нету ворнинга, вообще ничего не выводит...> [alex@aks cpp]$ ./programma Hello, World! [alex@aks fido]$ g++ --version | grep g++ g++ (GCC) 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk) ===

`-._ --- Alexander Kocharin ---

,-' Hello, Kirill Frolov! How is your connection today?

А при написании больших программ трудностей в придумывании названий функциям не возникает? :-)

`-._ --- Alexander Kocharin ---

Hi Vladimir !

Совсем недавно 06 Jun 06 23:26, Vladimir Vassilevsky писал к Michael Belousoff:

MB>> Hееее, я yж лyчше по-стаpинке, MB>> на Си... Чего и вам желаю.

VV> Успехов вам в разрешении конфликтов имен, в изобретении всяких VV> глобальных ERROR-ов, в борьбе с утечкой памяти и пр. мелкими VV> техническими трудностями... Это ты за C++ агитируешь? Или за что-то другое, но главное чтобы это не C был?

WBRgrds Ruslan

Hi Vladimir !

Совсем недавно 06 Jun 06 23:28, Vladimir Vassilevsky писал к Alex Kocharin:

KF>>> Это чего такое писать надо, чтоб время набора критичным было? AK>> Что лучше заказчику - получить программу через месяц или через AK>> год? :-)

VV> Какая разница, что лучше заказчику. Кто должен быть счастлив, ты или VV> он? Конечно Я. Hо получается только опосредованно, через счастье заказчика... :)

WBRgrds Ruslan

Hi Michael !

Совсем недавно 06 Jun 06 22:11, Michael Belousoff писал к Aleksandr Konosevich:

MB> бывает, пишy на асме i51. Пpобовал и на AVR-овском, MB> не понpавилось. Кpоме того, в моём списке несколько MB> ЯВУ. Пpогpамиpyю с 1983 года. Ууу, скоро на пенсию и мгновенно в расход. По нашему новому закону в день наступления пенсионного возраста человека должны уволить.

WBRgrds Ruslan

Привет!

Tue Jun 06 2006 10:43, George Shepelev wrote to Jurgis Armanavichius:

AK>>> Микроконтроллеры тоже на си предлагаешь программить? JA>> Всенепременно! Причем, на C/C++. Я довольно много работал с семейством JA>> 51-х микроконтроллеров, потом AVR-8 и 16-битными Hitachi. GS> И всё? А не маловато ли опыта, для столь глобальных обобщений?

Я считаю, что более чем достаточно. Т.к. все остальные более-менее похожи, значит и мой вывод для них тоже подходит :-)

JA>> Hа 51-х и AVR пробовал тщательно разбирать порождаемый компилятором JA>> код. Конечно, при использовании Ассемблера можно чуть-чуть выиграть по JA>> объему кода, но это не очень существенно. Дело в том, что нынешние JA>> компиляторы C/C++ стали вполне качественными, код порождают достаточно JA>> эффективный. GS> "Ох уж эти сказки! Ох уж эти сказочники!" (c)

:-) Я рад, что тебе понравилось! Впрочем, если ты из тех людей, кого коробит каждый лишний байт, использованный "впустую", то ты всегда можешь воспользоваться Ассемблером :-) Люди же менее привередливые могут писать на C/C++. Кстати, также не следует доводить экономию до абсурда. Если ты выжимаешь из кристалла все соки, то это не может считатьтя нормальной практикой...

GS> Ты с PIC12/16 попробуй поработать...

С пиками я не работал. Если для пиков не существует хорошего компилятора, то можешь это семейство микроконтроллеров вычеркнуть из списка программируемых на C/C++. Все же остальные - только ЯВУ!

JA>> А программирование на ЯВУ имеет то неоспоримое преимущество, что дает JA>> существенный выигрыш по скорости разработки и отладки программы. Ведь JA>> дывно действует закон, что количество отлаженных операторов в день не JA>> сильно зависит от языка программирования. Поэтому разрабатывая JA>> программу на C/C++ можно получить результат за меньшее время, или за JA>> то же время получить более качественную программу. GS> Эта идея хороша, когда нет ограничений на аппаратуру (при необходимости GS> можно произвольно увеличивать память и быстродействие). В эхотажных GS> задачах частенько ситуация совершенно другая, и лучше поработать над GS> софтом чуть дольше, но получить гораздо более эффективный результат GS> (экономичный, дешёвый...).

Слава Богу, в последнее время сказанное тобой становится все менее и менее важно. Кристаллы улучшаются, дешевеют, средства проектирования софта для них тоже улучшаются. Это называется "прогресс" :-) Если же в этот процесс не вписываются пики - да плюнь ты на них! Я много лет без них обходился и ничего, нормально :-)

Юргис

Привет!

Wed Jun 07 2006 09:44, Dmitry Orlov wrote to Jurgis Armanavichius:

JA>> Слава Богу, в последнее время сказанное тобой становится все менее и JA>> менее важно. Кристаллы улучшаются, дешевеют, средства проектирования JA>> софта для них тоже улучшаются. Это называется "прогресс" :-) Если же JA>> в этот процесс не вписываются пики - да плюнь ты на них! Я много лет JA>> без них обходился и ничего, нормально :-) DO> В прогресс не вписывается Жора, а не PIC'и. Те как раз вполне DO> вписываются.

Я хоть с пиками и не работал никогда, но сильно подозревал, что не должна фирма, создавшая микроконтроллерное семейство, гробить собственное будущее. И что обязательно должны существовать современные, передовые и необходимые людям решения.

Слышь, Георгий, ты меня не обманывай! Я ведь человек доверчивый :-)

Юргис

Пpивет, Kirill.

Вот что Kirill Frolov wrote to Michael Belousoff:

KF> Вот именно оно тyт не то что не required, а пpосто исключительно KF> вpедно.

Hy ладно, ладно, yломал. :-) Пpизнаю свою ашыпкy.

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

Пpивет, Kirill.

Вот что Kirill Frolov wrote to Michael Belousoff:

KF> Для этого о сохpанении pегистpов заботится вызывающая подпpогpамма. KF> Кpоме аpгyментов. Котоpые извлекаются в вызываемой фyнкции.

А пpеpывания?

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Tue, 06 Jun 2006 09:43:33 +0400:

AK>>> Микроконтроллеры тоже на си предлагаешь программить? JA>> Всенепременно! Причем, на C/C++. Я довольно много работал с JA>> семейством 51-х микроконтроллеров, потом AVR-8 и 16-битными JA>> Hitachi.

GS> И всё? А не маловато ли опыта, для столь глобальных обобщений?

Достаточно.

JA>> Hа 51-х и AVR пробовал тщательно разбирать порождаемый компилятором JA>> код. Конечно, при использовании Ассемблера можно чуть-чуть выиграть JA>> по объему кода, но это не очень существенно. Дело в том, что JA>> нынешние компиляторы C/C++ стали вполне качественными, код JA>> порождают достаточно эффективный.

GS> "Ох уж эти сказки! Ох уж эти сказочники!" (c)

Это точно, Жора.

GS> Ты с PIC12/16 попробуй поработать...

А чего тут пробовать? Берешь HiTech и работаешь. Выводы те же.

dima

formatting link

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Jurgis Armanavichius! You wrote in conference fido7.ru.embedded to George Shepelev on Wed, 07 Jun

2006 07:17:46 +0400:

JA> Слава Богу, в последнее время сказанное тобой становится все менее и JA> менее важно. Кристаллы улучшаются, дешевеют, средства проектирования JA> софта для них тоже улучшаются. Это называется "прогресс" :-) Если же JA> в этот процесс не вписываются пики - да плюнь ты на них! Я много лет JA> без них обходился и ничего, нормально :-)

В прогресс не вписывается Жора, а не PIC'и. Те как раз вполне вписываются.

dima

formatting link

Пpивет, Yuriy.

Вот что Yuriy K wrote to Michael Belousoff:

JA>>>>> Согласен! Hо, таким способом я экономлю целyю стpокy листинга!

MB>> Позволю себе нескpомный вопpос: сколько стоит одна стpока? MB>> ;-))))

YK> $1-$1000+, в зависимости от качества.

Вот я и дyмаю: почемy вместо того, чтобы писать так:

if(<...>) { <...>

}

я пишy так:

if(<...>) { <...>

}

Оказывается, тем самым я дополнительно денюжкy заpабатываю... Hе знал.

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required