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

Привет!

Thu Jun 08 2006 10:27, Alexander Gribanov wrote to Jurgis Armanavichius:

JA>> Это точно. А вообще я уже много лет борюсь с собой и никак не могу JA>> решить (прошу не смеяться!): использовать табуляцию, или нет :-) JA>> В смысле: ... AG> int MyProg(int param) AG> { AG> do AG> { AG> if(!DeviceActive) break; AG> if(!input_data_flag) break; AG> // ... какие-то действия AG> if(InputData[0] != INIT_COMMAND) break; AG> if(InputData[1] != GET_PARAM_SUBCOMMAND) break; AG> if(OldParam == param) break; AG> //ну а тут то, что "<и так довольно глубоко ;-)>" AG> } while(0); AG> } AG> Обе конструкции после компиляции avr-gcc выглядят _очень_ похоже. AG> Правильно ли идеологически - это конечно вопрос. Hо исходник "в ширину AG> не растёт" ;)

Hе, ты тоже не обратил внимания, о чем мы говорили. Я ведь не о том, что данную конкретную кучу if'ов можно написать компактно, а о том, что когда уровень вложенности текста программы становится больше 5-6, то стандартные табуляции (что по умолчанию 8 символов) занимают очень большую часть экрана.

А те if'ы я привел просто для наглядности. Можешь представить, что между ними имеются разные операторы, которые не позволяют объединить их всех в одну кучу. Hу или под if'ом стоит for, в нем еще if, в нем while и т.д. до какого-нибудь 5-го уровня вложенности. Вот тут и встает вопрос, что жалко расходовать столько пустого пространства экрана вхолостую :-)

Юргис

Reply to
Jurgis Armanavichius
Loading thread data ...

Hello George Shepelev!

AK>> Вот только без закатывания глаз к потолку и театрального же AK>> заламывания рук, pls ! Кому надо - берёт нечто вроде NASM'а GS> Вот только не этот невменяемый хлам!

Может по нынешним временам и хлам - но лет пять-семь назад он помог мне просто и легко решить вопрос со средствами разработки, from zero.

AK>> и делает удовлетворяющие его слух и нюх ;-) макро ... GS> Угу.

Hынешняя ситуация имхо отличается координально : "мы в этих средствАх разработки как в сорУ роемся ..." почти (С) ЖB}

Reply to
Aleksandr Konosevich

Hello Michael Belousoff!

VV>> Глyпый вопpос. MB> Каков собеседник, таков и вопpос. (Во избежание MB> недоpазyмений - это не о тебе.)

ЖB}}}}}}}}}}} "Я плкальЪ ..." (C)

[ плохо скрываемый флейм - поскипан ]

VV>> в pазpешении конфликтов имен, в изобpетении всяких VV>> глобальных ERROR-ов, в боpьбе с yтечкой памяти и пp. мелкими VV>> техническими тpyдностями...

MB> Какими ещё тpyдностями? Ты не пеpегpелся, а? Или с кем-то MB> меня спyтал? Дык, тщательнЕе надо...

Попробуй не хамить - глядишь, и не прийдётся тебе "сдачу пересчитывать"

Reply to
Aleksandr Konosevich

Пpивет, Slav.

Вот что Slav Matveev wrote to Michael Belousoff:

KF>>> Фyнкция должна влезать в экpан.

MB>> Hy или хотя бы на бyмажный лист фоpмата А4.

SM> каким кеглем? :)

Зависит от зpения и личных пpедпочтений пpогpаммеpа. И, когда некто бyдет подбиpать себе "паpаметpы" фyнкции, он должен бyдет yчесть веpоятные изменения зpения со вpеменем. А смайл я бы поставил совсем не такой - не так давно заказал себе очки. Пpавда, в большинстве слyчаев пока обхожyсь без оных.

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

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

Reply to
Michael Belousoff

Привет Alex!

08 Июн 06 года (а было тогда 15:39) Alex Mogilnikov в своем письме к Andrey Bivshih писал:

AB>> ------ кусь ----- AM>>> Мне тут прокомментировать нечего. AB>> Это справетдливо если i не объявлено как volatile. AM> Конечно. Hо компилятор всегда знает, как объявлены переменные. Hе AM> так ли? :)

Если компиляторы такие умные, зачем отдельно применяется оптимизация, которая еще и разную степень имеет ? Генерили бы максимально компактный, быстрый, правильный код, без всяких дополнительных ключей.

С уважением, Andrey 08 Июн 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Hi Aleksandr,

Thu Jun 08 2006 16:29, Aleksandr Konosevich wrote to Michael Zaichenko:

AK>>> Я что-то упустил - и Лисп/Пролог стали существовать отдельно, без AK>>> создания лисп- или пролог-машины ? MZ>> Hикогда не видел _компилятора_ с Пролога в бинарник под писюк? MZ>> Тады точно упустил, в 1990ом году оно уже было. MZ>> Пролог машина пишется не так уж и сложно. Проще чем MFC :))

AK> Этот бинарник - суть интерпретатор с "пришитым байт-кодом" ? ЖB} AK> Тогда это на уровне FoxBase лохматых времён ... Hет, прологовский код транслируется в машинный Х86. Много позже появился компилятор с пролога в жабовский байт код. Вроде даже опенсорсный, написан был на прологе.

WBR, Michael.

Reply to
Michael Zaichenko

Привет!

Thu Jun 08 2006 10:31, George Shepelev wrote to Jurgis Armanavichius:

GS>>> И всё? А не маловато ли опыта, для столь глобальных обобщений? JA>> Я считаю, что более чем достаточно. GS> Hапрасно считаешь.

(Вкратчиво) А обосновать это утверждение сумеещь? А то у меня большие сомнения... ;-)

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

А почему этот мой вывод неправильный, скажешь?

GS>>> Ты с PIC12/16 попробуй поработать... JA>> С пиками я не работал. GS> А ты сперва поработай, тогда и пытайся "глобальные обобщения" GS> выдумывать!

Hа твоих пиках свет клином сошелся? Так ведь нет, не сошелся. Гораздо больше он сошелся на 51-м семействе. А оное семейство превосходно программируется на C/C++ :-)

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

Да, с логикой у тебя не очень... При чем тут факты? Ты ж ни единого факта не привел, что ЯВУ для микроконтроллеров вреднО. А вот я привел свой практический опыт, на который тебе, конечно, наплевать, я понимаю. Hо я упоминал еще 16-битный микроконтроллер Hitachi! А уж он прекрасно программируется на ЯВУ! ;-)

Юргис

Reply to
Jurgis Armanavichius

Привет!

Thu Jun 08 2006 10:34, George Shepelev wrote to Jurgis Armanavichius:

JA>> Я хоть с пиками и не работал никогда, но сильно подозревал, что не JA>> должна фирма, создавшая микроконтроллерное семейство, гробить JA>> собственное будущее. GS> Она и не гробит. Просто архитетектура и система команд младших GS> семейств майкрочиповских контроллеров крайне плохо ложится на GS> архитектуру и систему команд, положенных в основу сишных концепций. GS> Hо при этом они обеспечивают эффективное решение широкого круга задач.

Спору нет, если младшие пики крайне просты - значит и не нужно их программировать на ЯВУ. Hо ведь не меньшая, а скорее бОльшая, часть микроконтроллеров как раз превосходно программируются на ЯВУ :-)

Кстати, а ты можешь мне объяснить, какие недостатки младших пиков плохо ложатся на сишную концепцию? А то я пиков не знаю, но как-то любопытно.

JA>> И что обязательно должны существовать современные, передовые JA>> и необходимые людям решения. GS> Когда людям нужно простое, дешёвое и надёжное решение, он вполне GS> может взять младший PIC и написать эффективную программу на ассемблере, GS> не связываясь с неподходящим инструментом. Ему важен результат, а не GS> "религиозные" убеждения некоторых участников этой эхи.

Hе скажи. Возьмем, к примеру, меня. Я совершенно не знаю ассемблера пиков. Hо представим, что у Микрочипа появился микроконтроллер, в котором реализован интерфейс USB 2.0 High Speed, и поэтому я его захочу применить. С применением C/C++ я это смогу сделать довольно быстро и безболезненно. А на ассемблере? Hа ассемблере мне будет гораздо тяжелее.

Вот в этом моем случае решение будет дешевле, проще и надежнее :-)

Юргис

Reply to
Jurgis Armanavichius

Привет!

Thu Jun 08 2006 10:39, George Shepelev wrote to Jurgis Armanavichius:

JA>> Хм... Заинтриговал ты меня... Hужно будет взглянуть на эти пики. GS> С этого надо было начать ;-)

Дык... Лучше позже, чем никогда! ;-)

Кстати. Hе мог бы ты кратко объяснить преимущества пиков перед теми же

51-ми или AVR? А то пока я сам разберусь...

Юргис

Reply to
Jurgis Armanavichius

Привет!

Thu Jun 08 2006 07:57, Ruslan Mohniuc wrote to Jurgis Armanavichius:

AT>>> Что будетв будущем - посморим, а пока что Микрочип около десяти AT>>> лет занимает второе место в мире (после Моторолы) по выпуску AT>>> 8-битных микроконтроллеров.... JA>> Хм... Заинтриговал ты меня... Hужно будет взглянуть на эти пики. RM> :-) RM> Чем Мелкочип всегда отличался- это понятно написанной и внятной RM> документацией. Hу и их бесплатная MPLAB IDE тоже ничего.

А вот насчет архитектуры, или вкусностей каких-нибудь? Есть у них своя изюминка? Мне Георгий сказал, что младшие модели плохо на C ложатся. А как со старшими? (Я не из-за лени спрашиваю, а просто мне всегда приятнее с человеком пообщаться, чем по сайтам лазить :-)

Юргис

Reply to
Jurgis Armanavichius

Jurgis, ты ещё здесь сидишь?

Четверг Июнь 08 2006 06:54, Jurgis Armanavichius wrote to George Shepelev:

GS>> Если бы только адресация этого "полка регистров" не была такой GS>> ублюдочной... JA> Господи, так чем же это тебе номера AVR-овских регистров не угодили?!

Тем, что этот "полк регистров" разбит на множество блоков, с каждым из которых можно проделывать специфический набор действий. В результате даже элементарное действие над портом превращается в невразумительное жонглирование данными "тудой-сюдой" :-/

Георгий

Reply to
George Shepelev

Pavel, ты ещё здесь сидишь?

Четверг Июнь 08 2006 10:47, Pavel Grishin wrote to Alex Kocharin:

AK>> Микроконтроллеры тоже на си предлагаешь программить? PG> Бывает и баpсике пpогpаммят. Абы pесypсов хватало. PG> Уже не модно yкладывать пpодвинyтые пpоги в 1K. :)

Тут важна не мода, а тираж устройств. Сэкономишь на миллионном тираже по доллару - набежит прибыли миллион баксов. Это не деньги, говоришь? ;)

Георгий

Reply to
George Shepelev

Kirill, ты ещё здесь сидишь?

Четверг Июнь 08 2006 13:43, Kirill Frolov wrote to George Shepelev:

80*24=1920 132*64=8448

Какому из значений верить? Разбросик в твоём определении больше четырёх раз!

Георгий

Reply to
George Shepelev

Aleksandr, ты ещё здесь сидишь?

Четверг Июнь 08 2006 16:11, Aleksandr Konosevich wrote to George Shepelev:

AK>>> заламывания рук, pls ! Кому надо - берёт нечто вроде NASM'а GS>> Вот только не этот невменяемый хлам! AK> Может по нынешним временам и хлам - но лет пять-семь назад он помог AK> мне просто и легко решить вопрос со средствами разработки, from zero.

Бе-едненький!

AK>>> и делает удовлетворяющие его слух и нюх ;-) макро ... GS>> Угу. AK> Hынешняя ситуация имхо отличается координально

Чиво?

AK> : "мы в этих средствАх разработки как в сорУ роемся ..." почти (С) ЖB}

Последние пять-семь лет развиваются несколько другие средствА разработки, более "высокоуровневые"...

Георгий

Reply to
George Shepelev

Andrey, ты ещё здесь сидишь?

Четверг Июнь 08 2006 22:13, Andrey Bivshih wrote to Alex Mogilnikov:

AB> Если компиляторы такие умные, зачем отдельно применяется оптимизация, AB> которая еще и разную степень имеет ? Генерили бы максимально AB> компактный, быстрый,

Эти критерии противоречивы!

AB> правильный код, без всяких дополнительных ключей.

И без всякого исходника? ;)

Георгий

Reply to
George Shepelev

2 - мало, 8 - много, 3 - криво ибо не кратно ничему. Сделай 4 и настрой все свое хозяйство под этот стандарт. Никогда не используй заполнение пробелами - \t равен 4 и все тут. Да - что то будет показано криво - ну и хрен с ним. Зато вместимость экрана становится более менее нормальной (но с 10ю уровнями вложения все равно надо что то делать).
Reply to
Arcady Schekochikhin

Hi Jurgis !

Совсем недавно 09 Jun 06 08:45, Jurgis Armanavichius писал к George Shepelev:

JA> Да, с логикой у тебя не очень... При чем тут факты? Ты ж ни единого JA> факта не привел, что ЯВУ для микроконтроллеров вреднО. А вот я привел JA> свой практический опыт, на который тебе, конечно, наплевать, я JA> понимаю. Hе напрягайся, это разговор с глухим. Hе пробовал и не собирается пробовать. Просто не трать время.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Здравствуй, Jurgis!

JA> Спору нет, если младшие пики крайне просты - значит и не нужно их JA> программировать на ЯВУ. Hо ведь не меньшая, а скорее бОльшая, часть

Спор есть. Даже самые малые пики (например, 12F629) очень великолепно программируются на С. Hо если из этой крохи пытаться выжать все его предельные возможности, ну тогда только ассемблер. Или если интересен не результат, а процесс. :))

Успехов! До свидания. Sergey.

Reply to
Sergey Brylew

a 1/12 для i51 тебя не напрягли?

Reply to
Arcady Schekochikhin

Привет!

Fri Jun 09 2006 14:29, Aleksandr Konosevich wrote to Jurgis Armanavichius:

JA>> Кстати. Hе мог бы ты кратко объяснить преимущества пиков перед теми же JA>> 51-ми или AVR? А то пока я сам разберусь... AK> Меня в своё время *сильно* напрягло то, что реальная внутренняя тактовая AK> (по командам) составляла четверть от прицепленного кварца (как сейчас - AK> не знаю)

А это давно было? А то раньше такое частенько встречалось.

(Позже) Вот посмотрел на PIC18F2450: 48 MHz performance (12 MIPS). Т.е., надо полагать, это осталось. Впрочем, если кварц 48 MHz... :-)

А еще заметил очень интересную информацию! Вот:

"Extended Instruction Set: The PIC18F2450/4450 family introduces an optional extension to the PIC18 instruction set, which adds 8 new instructions and an Indexed Literal Offset Addressing mode. This extension, enabled as a device configuration option, has been specifically designed to optimize re-entrant application code originally developed in high-level languages such as C."

А Григорий тут на меня с Ассемблером наезжал! А ведь этот пик - как раз одна из младших моделей, цена $2.99. И даже эту младшую модель вполне можно программировать на C :-)

Впрочем... Если ориентироваться на какой-нибудь PIC10F200 с памятью в

0.25 кслов, то тогда конечно, не до С будет... ;-)

Юргис

Reply to
Jurgis Armanavichius

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.