WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies
ðÒÉ×ÅÔ, George! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Fri, 14 Oct 2005 13:11:57 +0400:

LB>> HÅ ÎÁÄÏ ÚÁÍÅÎÑÔØ ÕÓÌÏ×ÉÑ ÚÁÄÁÞÉ. ïÐÉÛÉ ÓÌÏ×ÁÍÉ ÌÀÂÕÀ ÉÚ ÉÚ×ÅÓÎÙÈ LB>> ÔÅÂÅ _ÓÈÅÍ_ rs-ÔÒÉÇÇÅÒÁ. GS> ìÅÇËÏ. ä×Á ÜÌÅÍÅÎÔÁ 2-éìé-Hå, ×ÙÈÏÄ Ó ËÁÖÄÏÇÏ ÚÁ×ÅÄÅÎ ÎÁ ÏÄÉÎ ÉÚ GS> ×ÈÏÄÏ× ÓÏÓÅÄÎÅÇÏ. ïÓÔÁ×ÛÉÅÓÑ ×ÈÏÄÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÉÚÍÅÎÅÎÉÑ GS> ÓÏÓÔÏÑÎÉÑ ÐÏÌÕÞÉ×ÛÅÇÏÓÑ ÔÒÉÇÇÅÒÁ. þÔÏ ÎÅ ÔÁË?

çÄÅ ×ÙÈÏÄ?

SD>>>> É ÏÂÙÞÎÕÀ ÓÉÎÕÓÏÉÄÕ, GS>>> "ïÂÙÞÎÁÑ ÓÉÎÕÓÏÉÄÁ" - ÜÔÏ ÁÂÓÔÒÁËÃÉÑ. ÷ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ ÂÕÄÅÔ GS>>> ËÏÎËÒÅÔÉÚÁÃÉÑ, Ë ÐÒÉÍÅÒÕ ÚÁÄÁÎÉÅ ÔÒÅÂÕÅÍÏÊ ÆÕÎËÃÉÉ Ó ÚÁÄÁÎÎÏÊ GS>>> ÔÏÞÎÏÓÔØÀ × ÔÁÂÌÉÞÎÏÊ ÆÏÒÍÅ. LB>> ïÐÉÛÉ ÓÌÏ×ÁÍÉ ÚÁ×ÉÓÉÍÏÓÔØ ÎÁÐÒÑÖÅÎÉÑ ÏÔ ×ÒÅÍÅÎÉ × ÒÏÚÅÔËÅ. GS> ðÅÒÅÍÅÎÎÏÅ ÎÁÐÒÑÖÅÎÉÅ Ó ÞÁÓÔÏÔÏÊ 50 çÃ, ÆÏÒÍÁ ÓÉÎÕÓÏÉÄÁÌØÎÁÑ ÂÅÚ GS> ÐÏÓÔÏÑÎÎÏÊ ÓÏÓÔÁ×ÌÑÀÝÅÊ, ×ÅÌÉÞÉÎÁ ÄÅÊÓÔ×ÕÀÝÅÇÏ ÎÁÐÒÑÖÅÎÉÑ 220 GS> ×ÏÌØÔ. õ ÁÍÅÒÉËÁÎÃÅ× 60 çà É, ÎÁÓËÏÌØËÏ ÐÏÍÎÀ, 120 ×ÏÌØÔ. þÔÏ ÎÅ GS> ÐÏÎÑÔÎÏ?

þÔÏ ÔÁËÏÅ "ÓÉÎÕÓÏÄÁÌØÎÁÑ ÆÏÒÍÁ"? é ÔÙ ÓÞÉÔÁÅÛØ, ÞÔÏ ÔÁËÉÅ ÏÐÉÓÁÎÉÑ ÌÕÞÛÅ ÞÅÍ ÇÒÁÆÉÞÅÓËÏÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ ÔÏÊ ÖÅ ÉÎÆÏÒÍÁÃÉÉ? é ÞÔÏ ÉÈ ÌÅÇÞÅ ÐÏÎÑÔØ, ÞÅÍ ÇÒÁÆÉÞÅÓËÏÅ ÐÒÅÄÓÔÁÌÅÎÉÅ?

With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru

ðpÉ×ÅÔ, Dmitry. ÷ÏÔ ÞÔÏ Dmitry Orlov wrote to Michael Belousoff:

DO>>> éÚÎÁÞÁÌØÎÏ ÜÔÏÔ ÎÅÄÏÑÚÙË ÔÏÌØËÏ ÄÌÑ i51 É ÐÏÄÈÏÄÉÔ. DO>>> óÏ×ÅpÛÅÎÎÏ yÂÏÇÁÑ É ÂÅÓÐÏÌÅÚÎÁÑ ×ÅÝØ. é × ÏÔÌÉÞÉÅ ÏÔ ×ÁÛÅÇÏ DO>>> ËÏÌÌÅËÔÉ×Á ×ÉpÔyÁÌÏ×, Ñ ÔÁËÉ ÚÎÁÀ Ï ÞÅÍ ÇÏ×ÏpÀ. æÁËÔÉÞÅÓËÉ DO>>> PLM - ÓÔpyËÔypÎÙÊ ÁÓÓÅÍÂÌÅp, Á ÎÅ ÐÏÌÎÏÃÅÎÎÙÊ ñ÷õ.

MB>> úpÑ ÔÙ ÔÁË. PL/M ÐÏÄÈÏÄÉÔ, ÔÏÞÎÅÅ, ÐÏÄÈÏÄÉÌ, É ÎÅÐÌÏÈÏ, ÄÌÑ MB>> i8080. ðpÁ×ÄÁ, ÔÏÔ PL/M-80, ËÏÔÏpÙÊ ÂÙÌ y ÍÅÎÑ (Á pÁÂÏÔÁÌ ÏÎ

DO> 8080 - ÐpÏÃÅÓÓÏp, Á ÎÅ ËÏÎÔpÏÌÌÅp. é ÄÌÑ ÐÏÓÔpÏÅÎÉÑ pÁÂÏÔÁÀÝÅÊ ÓÉÓÔÅÍÙ DO> ÔpÅÂÏ×ÁÌ ËyÞÉ ÏÂ×ÑÚËÉ.

ïÎÏ ÔÁË, ËÏÎÅÞÎÏ, ÎÏ ÜÔÏ ÎÉÞÅÇÏ ÎÅ ÍÅÎÑÅÔ.

DO> ÷ ÔÅ ×pÅÍÅÎÁ (ËÏÎÅà ×ÏÓØÍÉÄÅÓÑÔÙÈ) Ñ ÄÌÑ ÎÅÇÏ ÐÉÓÁÌ ×ÏÏÂÝÅ × ËÏÄÁÈ.

á Ñ × ËÏÄÁÈ ÄÌÑ 8080 ÐÉÓÁÌ × ÎÁÞÁÌÅ 80-È. á × ËÏÎÃÅ 80-È - yÖÅ ÎÁ PL/M-80.

DO> áÓÓÅÍÂÌÅpÁ É ÔÏÇÏ, ÎÁ ÞÅÍ ÅÇÏ ÍÏÖÎÏ ÚÁÐyÓÔÉÔØ ÐÏ DO> ÎÁÞÁÌy ÎÅ ÂÙÌÏ.

õÇy.

MB>> Åݣ ÄÁÖÅ ÎÅ ÎÁ PC, Á ÎÁ "ÍÉËpÏü÷í" ÎÁ ÂÁÚÅ ÔÏÇÏ ÖÅ i8080), MB>> ÉÍÅÌ ÎÅÐpÉÑÔÎÙÊ ÇÌÀË. HÏ Ñ ÂÙ ÎÅ ÓÔÁÌ yÔ×ÅpÖÄÁÔØ, ÞÔÏ ÜÔÏ MB>> ÁÓÓÅÍÂÌÅp, ÐÏ ËpÁÊÎÅÊ ÍÅpÅ ÏÎ ÐÏÚ×ÏÌÑÌ ÐÉÓÁÔØ ÄÏ×ÏÌØÎÏ ÓÌÏÖÎÙÅ MB>> ×ÙpÁÖÅÎÉÑ, ÄÁ É ÐÏÈÏÖ ÎÅÍÎÏÇÏ ÎÁ ÐÁÓËÁÌØ. ÷ÐpÏÞÅÍ, ÄÅÔÁÌÅÊ Ñ

DO> HÅ, Îy ÐÏ ÓpÁ×ÎÅÎÉÀ Ó ÁÓÓÅÍÂÌÅpÏÍ - ËÏÎÅÞÎÏ ÐpÏÇpÅÓÓ. HÏ ÄÏ ó ÅÍy ËÁË DO> ÄÏ ëÉÅ×Á pÁËÏÍ.

ñ ÎÅ ÚÁÓÔÁÌ C ÄÌÑ 8080. äÁ É ÂÙÌ ÌÉ ÏÎ × ÐpÉpÏÄÅ? ïÌÅÎØËÅ HÏÎÏ×ÏÊ: þÔÏ ÖÅ ËÁÓÁÅÔÓÑ PL/M-51, ÔÁË ×ÏÔ ÏÎ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÁÆÉÇ ÎÅ ÎyÖÅÎ.

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

formatting link
... ==== ðpÏÂÌÅÍy ÎÁÄÏ pÅÛÁÔØ ÄÏ ÔÏÇÏ, ËÁË ÏÎÁ ÐÏÑ×ÉÔÓÑ. ====

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 16 Oct 2005 17:01:59

+0400:

DT>>> За исключением параметра цикла. Придётся окружать for DT>>> скобками и объявлять параметр перед оператором, что DT>>> захламляет текст и снижает читаемость.

DO>> Hу в Паскале такого тоже нет...

DT> А в Аде - есть. :) Более того, там параметр цикла объявляется DT> самим фактом своего использования в заголовке цикла. В DT> пределах цикла он read only (!), а по завершении цикла DT> уничтожается.

Ну и зачем мне эти навороты? В паскале я кстати иногда пользовался параметром for на запись, в С цикл for - вообще разновидность while и как такового параметра цикла там вообще нет.

DT>>> А! Зря не знаешь. :) Это задание контекста при DT>>> использовании структур (в паскале они называются records):

DO>> Штука безусловно удобная и оптимизатору лишняя подсказка, но DO>> без нее жить вполне можно.

DT> Можно, если активно пользоваться классами...

Я классами не пользуюсь...

AM>>>> а остальное можно в C++.

DT>>> Можно, но оно не интегрировано в язык. Hапример, в паскале DT>>> размерности массивов задаются диапазонами,

DO>> Толку-то. Сомнительное преимущество.

DT> Почему? Удобнее и универсальнее, чем в C.

Зато в С ближе к реализации.

DT> Да и упомянутый оператор выбора тоже более правильный.

Но привязан к реализации множеств.

DT>>> Для сетов есть специальный оператор in. Кстати, в дельфи

DO>> Сеты тянут за собой некислый такой код из RTL.

DT> Да ну, ерунда. Фактически операции с ними сводятся к DT> побитовым and, or, xor, and-not.

К чему сводятся операции с множествами - очевидно. Не очевидно сколько ресурсов займет какое выражение.

DO>> И сами переменные тоже по 32 байта.

DT> ...максимум. :) В зависимости от размеров базового типа. DT> Если ты объявишь

DT> type DT> Digits = '0'..'9'; DT> DigSet = set of Digits;

DT> то SizeOf(DigSet) будет равно 2-м.

Будет. Кстати tp легко компилирует

var ds: DigSet;

begin ds := ds+['d']; end.

Вобщем в РСэшном паскале это все не мешает, а иногда и приятно, но тащить все эти навороты в embedded я считаю совершенно лишним. Между прочим, тут еще один камушек в огород ругающих С за неоднозначность символов. В Паскале [] используется и для индексации массива и для определения констант типа множество.

DT>>> for c in SomeString do ...

DO>> Дельфи - вообще весьма эклектичная вещь...

DT> Это да. Hо и C++ - тоже. :)

В меньшей степени.

DT> В отличие от весьма ортогональной и симметричной Ады.

Да нет никакой Ады и уже очевидно не будет.

DT>>> Попробуй внятно написать декларацию/дефиницию чего-нибудь, DT>>> содержащего указатели. Для этого даже специальные программы DT>>> придумали, cdecl и cundecl. :)

DO>> Hа паскале подобной сложности объявления тоже внятностью не DO>> отличаются.

DT> Hу, в общем, логично. Hо всё же легче разобраться в ключевых DT> словах, чем в наборе спецсимволов.

В паскале используется символ ^, в С - * , какие ключевые слова?

DT>>> Hу здрасти. А в выражениях? Когда я на восьмибитовом DT>>> кристалле хочу сложить два байта, как мне это сделать без DT>>> промежуточного преобразования в int?

DO>> Пишешь

DO>> short s; DO>> char a, b;

DO>> s = (short)a+b;

DO>> Что тут не очевидно? Более того, в паскале та же проблема с DO>> тем же решением (правда нестандартным).

DT> Так и и чего? Hеужели по дороге, в районе плюса ;), a и b не DT> будут преобразованы в int?

Если написано short, то в short и будут преобразованы. Если нет, зависит от компилятора и платформы. На однобайтных архитектурах скорее всего в байтах и будет сложено. Ну или в результат попадет младший байт.

dima

formatting link

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Alex Mogilnikov on Sun, 16 Oct 2005 17:18:39

+0400:

AM>> byte f(byte a, byte b) AM>> { AM>> return a + b; AM>> }

AM>> Так все-таки, я правильно понял, что тебе хочется, чтобы AM>> при вызове f(100, 200) возвращаемое значение было AM>> неопределено?

DT> Мне хочется, чтобы это выражение компилировалось в байтовое DT> сложение.

Скорее всего, в него и скомпилируется. Или в эквивалентное ему.

DT> Поскольку число беззнаковое, то, следовательно, применяется DT> модульная арифметика, и 100b+200b должно быть 44. Если же DT> числа знаковые, должно фиксироваться и обрабатываться DT> переполнение.

Ерунда какая-то. Какая разница знаковые или беззнаковые числа? Операция сложения для них не отличается. Кем и как должно переполнение обрабатываться?

AM>> Если да, то C++ позволяет определить тип TMy8bitByte и AM>> операторы для работы с ним.

DT> А как ты их определишь, если не через сложение базовых типов? DT> Которое опять же будет происходить в 16-битной арифметике.

Почему в 16тибитной? И какие собственно альтернативы базовым для целевой платформы типам?

DT>>> Типичное заблуждение сионистов. ;) Чем больше писанины - тем DT>>> больше возможностей у компилятора _отловить_ ошибку.

AM>> short s = (short)0;

AM>> Какого рода ошибки (кроме опечаток, когда вместо short AM>> кодер напишет shirt) может отловить в данном случае AM>> компилятор?

DT> Я не про данный случай, как уже пояснил выше. А про такое, DT> например:

DT> int i; DT> float f;

DT> f = i; DT> i = f;

DT> И всё скомпилируется.

И что с того? Если ты напишешь a=b вместо a=c, это тоже скомпилируется, хотя может привести к тяжелоотлавливаемым последствиям.

DT>>> Язык обязан быть избыточным, и разная семантика обязана DT>>> выражаться разными, непохожими синтаксическими DT>>> конструкциями. В частности, ключевое слово лучше DT>>> спецсимвола: и потому что избыточно, и потому что лучше DT>>> читается.

AM>> Обоснуй. Чем бОльшая избыточность лучше мЕньшей?

DT> Тем, что защищает от шума. :)

Откуда шум-то?

DT> означают и "больше/меньше", и скобки для темплейтов. А << и DT> >> - и операторы сдвига, и операторы работы с потоками...

Причем тут потоки? Это же просто переопределение операторов, которого кстати в OP нет, что можно и как достоинство и как недостаток рассматривать.

DT> Кстати, нет ли у тебя красивого, хорошо документированного DT> исходника БПФ на C/C++?

Да их огромное количество в сети.

dima

formatting link

Hello, Ivan Melnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 16 Oct 2005 19:18:26

+0400:

DT>>>> Так чего ты хочешь от x51? Эта архитектура для C DT>>>> категорически не приспособлена.

DO>> Ерунда. Прекрасно все пишется на С для i51, я уже лет 10 DO>> назад вполне успешно это делал.

IM> конечно пишется, но в своей конторе, старые IM> программисты под данные контроллеры пишут на ассемблере, а IM> молодые на Си.

Старым просто лень учиться. Что вполне естественно и понятно, но вовсе не означает, что на асме - лучше.

dima

formatting link

Hello, Ivan Melnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 16 Oct 2005 19:34:44

+0400:

IM>>>>> Замена одной мнемоники на другую бывает полезно, DO>>>> А бывает и вредно. И пока все макросы не разберешь, не DO>>>> понять что же тут написано. IM>>> Так тыже сам пишешь программу, так что тебе может IM>>> быть не понятно.

DO>> Программа, написанная несколько лет назад - как новая.

IM> Согласен, но беда эта уже твоя, ты плохо документируешь программу.

Гм. Откуда такой вывод?

IM> Данная проблема у многих программистов и у меня такое IM> присутствует. Время проходит, даже и года не бывает, смотришь IM> на программу, как на новую и сразу понять не можешь.Понимаешь IM> только через не которое время.

Потому что нужно время, чтобы разобраться и понять. Хорошо документированную в том числе.

IM>>> Кроме этого, еще один плюс, меньше ошибок в программе.

DO>> Пока что-то менять не начнешь.

IM> а мне они наоборот помогли, особенно в самом начале IM> программисткой деятельности, меняешь в одном месте и считай, IM> что во всей программе исправления прошли, где макросы IM> используешь.

Кроме какого-нибудь места, где побочные эффекты оказались существенны...

IM>>> Когда я начинал программировать на ассемблере, у меня было IM>>> много ошибок в программе при написании, а вот при

DO>> Я уже много лет почти не пользуюсь ассемблером.

IM> Hужды не было, вот и не пользуешься.

Ясное дело.

IM>>> А могу в ассемблерной программе, которую вставлю в IM>>> сишную макросы использовать. DO>> Далеко не всегда.

IM> А что может помешать ? Может конечно ошибаюсь. У меня

Например отсутствие встроенного ассемблера вообще, или наоборот наличие только встроенного, никаких макросов не понимающего.

IM> есть опыт работы только в кейле(для микроконтроллеров).

У меня опыт шире.

dima

formatting link

Hello Kirill.

Mon Oct 17 2005 02:55, Kirill Frolov wrote to me:

DT>> case c of DT>> 'A'..'Z': Proc1(c); DT>> '0'..'9','.',':': Proc2(c);

KF> ÷ GCC ÔÏÖÅ ÍÏÖÎÏ.

ïÎ ÞÔÏ, ÐÏÄÄÅÒÖÉ×ÁÅÔ ÎÅÓÔÁÎÄÁÒÔÎÙÊ ÄÉÁÌÅËÔ? ôÉÐÁ Turbo/Object Pascal-Ñ ? :)

DT>> äÌÑ ÓÅÔÏ× ÅÓÔØ ÓÐÅÃÉÁÌØÎÙÊ ÏÐÅÒÁÔÏÒ in. ëÓÔÁÔÉ, × ÄÅÌØÆÉ ÄÏÂÁ×ÉÌÉ DT>> Åݣ ÕÄÏÂÎÕÀ ÆÉÞÕ: ÉÓÐÏÌØÚÏ×ÁÎÉÅ in × ÏÐÅÒÁÔÏÒÅ for ÔÁËÉÍ ÏÂÒÁÚÏÍ:

KF> ÷ C ÅÓÔØ ÐÏÎÑÔÉÅ ÓÔÒÏËÁ

ëÁËÁÑ Ö ÔÏ ÓÔÒÏËÁ? :) ÷ÏÔ × ðÁÓËÁÌÅ - ÄÁ, ÏÓÏÂÅÎÎÏ AnsiString. äÁÖÅ × áÄÅ ÓÔÒÏËÉ ÐÏÖÉÖÅ ÂÕÄÕÔ.

KF> , ËÕÄÁ ÐÒÅËÒÁÓÎÏ ×ÐÉÓÙ×ÁÅÔÓÑ ÍÎÏÖÅÓÔ×Ï Ó ÅÇÏ 8-ÂÉÔÎÙÍÉ ÜÌÅÍÅÎÔÁÍÉ. KF> ëÒÏÍÅ 0-ÇÏ ÒÁÚ×Å ÞÔÏ. ïÐÅÒÁÔÏÒ in ÎÁÚÙ×ÁÅÔÓÑ ÆÕÎËÃÉÅÊ strchr().

H-ÎÅ ÐÏÎÑÌ, ËÁË × ÓÔÒÏËÕ ÍÏÖÅÔ ×ÐÉÓÙ×ÁÔØÓÑ ÔÉÐ, ÒÅÁÌÉÚÁÃÉÑ ËÏÔÏÒÏÇÏ - ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÂÉÔ É ÏÐÅÒÁÃÉÉ ÎÁÄ ËÏÔÏÒÙÍ ÒÅÁÌÉÚÕÀÔÓÑ ËÁË ÐÏÂÉÔÏ×ÙÅ and, or, xor, and-not.

DT>> HÕ ÚÄÒÁÓÔÉ. á × ×ÙÒÁÖÅÎÉÑÈ? ëÏÇÄÁ Ñ ÎÁ ×ÏÓØÍÉÂÉÔÏ×ÏÍ ËÒÉÓÔÁÌÌÅ ÈÏÞÕ DT>> ÓÌÏÖÉÔØ Ä×Á ÂÁÊÔÁ, ËÁË ÍÎÅ ÜÔÏ ÓÄÅÌÁÔØ ÂÅÚ ÐÒÏÍÅÖÕÔÏÞÎÏÇÏ DT>> ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ × int?

KF> âÅңÛØ É ÓËÌÁÄÙ×ÁÅÛØ. :-/

HÁ ËÁÌØËÕÌÑÔÏÒÅ? ;)

Dimmy.

Консенсус.

Вот так и для меня - как правило _нет_ _необходимости_ писать на асме.

А вы себя к ним не относите? Разве не вы "трюки" вовсю рекламировали? Или у нас разное понимание термина "хакер"?

Вот именно - _в любом_.

"попроще/понадёжнее" - я разве против этого? - у меня это лучше получается на Си.

Таких, которые не дают такую рекомендацию и полностью учитывают такую особенность человека я пока не видел. А вы? ;)

"_тщательная_ проверка...." - это по моему процесс, а не результат..;) Для меня результат - работоспособный продукт.

Не Виртом единым жив программист.... может к сожалению, а может к счастью...

Спокойно пишу и на Си и на Паскале, но иногда в паскале не хватает "Си-шной свободы";) Не "некорректное сравнение" - а субъективное. Вы ведь и начали такое "некорректное сравнение" - предлагаете закончить?

И что же там? ;)

Смотрю в свои исходиники на Си..... вижу комментарии.... ;)

Оно всегда так - или работает или не работает или работает но не так - и не важно на чем писано.

Да. Для этого ее нужно использовать по назначению. (для яичницы - это значит съесть:))

С обычной легкостью отличу. Имеющий глаза да увидит. К тому-же трудновато сразу ошибиться в паре скобок, и клавиши не так уж близко стоят. Вы же ведь тоже уже согласились, что проблемы есть в _любом_ языке. И я не утверждал, что в Си их не существует вообще. Вы легко отличаете "," и "." в русском языке? Вы всегда правильно ставите знаки препинания в письменной речи? Что вы предложите чтобы _всегда_ правильно писать по-русски?

И? Не будет предупреждений или ошибок??? Где и как дальше вы использовали n? 1. Если хотели массив, а объявили ф-цию, потом обратились как к массиву n[i] = ...; или *n = ...; или ... = n[i]; или ... = *n; 2. Если хотели ф-цию, а объявили массив, потом обратились как к функции ... = n(); или n(); Все эти случаи компилятор завернет. А объявление чего-то ради объявления - не имеет смысла... Или вы что-то другое имеете в виду?

Некоторые компиляторы дают предупреждение на int n(); IAR: "Warning[35]: Old-style (K&R) type of function declarator" Я и пишу всегда поэтому: int n(void);

Опять же здесь все зависит от типов переменных... Ну уж если вы хотели действие например "уменьшить а на b" и вместо a = a - b; написали a = a + b; То тут вам никакой компилятор не поможет и асм тоже. Для асма пример: забыли напечатать # - получилось обращение по адресу, вместо непосредственного значения...

Додумывать за вас ваши действия даже ассемблер не в силах.

И в асме таких мелочей хватает.

Ну и вот - так что зачем мешать людями "учиться ходить" на Си? Если они будут уметь делать это качественнее, чем другие на асме - кому-то хуже от этого будет? Вам что-ли?

Сочувствую вам.... Я избежал этого в свое время.

Нет. Просто я услышал от вас какую-то несуразицу: "В сишныых подпрограммах аргументы локальны" а что разве можно сказать "в подпрограммах аргументы глобальны" - это полная чушь. Если для вас формальные параметры могут быть глобальными переменными - то уж извините, с вами далше уже и не стоит про ЯВУ разговаривать.

Баг где? В понимании? Я например из лекций и книжек все четко понял, как и что там может передаваться. И с этим у меня в фортране проблем не возникло...

"писать правильно" на естественном языке, который вы так любите, и означает знание правил + множество "тонких нюансов". Тоже относится и к искусственным языкам.

"сишными затычками" ??? В асме такое на каждом шагу - на каджую яму и грабли вы предлагаете писать кучу макросов - ничем не лучше..

А вы думали у вас все "полетит" без знания ньюнсов? Вас так удивило то что в языке надо разобраться малость перед его использованием? И я асмом успешно пользуюсь - разобрался ведь во всех его ньюансах, но я не прелагаю ведь искоренить его "как класс". А практический опыт мне говорит что Си удобнее для эхотага.

Для эхотага фактически два варианта - асм или си.

Что было пригодно для асма одного кристалла - непригодно для асма другого кристалла - опять: учиться, учиться .... и писать, писать.... макросы.

Моя практика: на Си в эхотаге удобнее. Значит по вашему - это и есть истина, тогда спорить не буду.

Отнюдь;)

И это не вы писали? 1. BK> Т.е. те, кто читает Си без проблем - либо их меньшенство, BK> либо они ненормальные? :-)))))

Либо и то и другое ,-)

  1. Подавляющее большинство сишников - "кульхацкеры".

Нет. Вы видимо не поняли мое отношение к асму.

"всё перелопачивать" - это как раз "по-ассемблерски". И модульность тут не причем - что написано в мнемониках, то и придется перелопатить, а если есть существенные отличия в архитектуре, то еще и алгоритмы надо перелопатить которые используют особенности архитектуры.

Вам того же могу посоветовать. А то вы рассуждаете как начинающий программист - "этот язык плохой потому что мне в нем пришлось долго разбираться с нюансами и походить по граблям" Я уже давно такое пережил ;) Чего и вам желаю ;)

Hello George.

Sun Oct 16 2005 13:29, George Shepelev wrote to Sergey Davydov:

SD>> mov a, value SD>> mov a, #value

GS> ðÒÁ×ÉÌØÎÏ, Õ _ÔÁËÏÊ_ ÚÁÐÉÓÉ ÐÌÏÈÁÑ ÎÁÇÌÑÄÎÏÓÔØ, Ñ ÐÒÅÄÐÏÞÉÔÁÀ GS> "ÂÏÒÌÁÎÄÏ×ÓËÉÅ" ÓËÏÂÏÞËÉ, ÔÁÍ "ÚÅ×ÎÕÔØ" ÇÏÒÁ-ÁÚÄÏ ÓÌÏÖÎÅÅ!

áÇÁ, Ñ ÔÏÖÅ ×ÓÅÇÄÁ ÐÌÅ×ÁÌÓÑ É ÐÏÎÁÞÁÌÕ ÏÛÉÂËÉ ÄÅÌÁÌ. HÁÄÏ ÂÙÌÏ ÂÙ, ÎÁÐÒÉÍÅÒ, ÔÁË:

mov a,#literal mov a,[variable]

GS> é Ë ÓÑÍ × ÔÏÍ ÞÉÓÌÅ? ïÔÞÅÇÏ-Ö ×Ï ×ÓÅÈ ÕÞÅÂÎÉËÁÈ ÐÏ ÓÑÍ ÐÏÓÔÏÑÎÎÏ GS> ÆÉÇÕÒÉÒÕÀÔ ÓÏ×ÅÒÛÅÎÎÏ ÂÅÓÓÍÙÓÌÅÎÎÙÅ ÓޣÔÞÉËÉ i ÄÁ j?

åÓÌÉ ÒÅÞØ Ï ÐÁÒÁÍÅÔÒÅ ÃÉËÌÁ, ÔÏ ÒÁÂÏÔÁ Õ ÎÅÇÏ ÔÁËÁÑ - ÂÅÚÙÍÑÎÎÁÑ. :)

Dimmy.

Hello George.

Sun Oct 16 2005 13:43, George Shepelev wrote to me:

DT>>>> á ÎÅ ÎÁÄÏ ÎÁ ÜÔÏ ÒÁÓÓÞÉÔÙ×ÁÔØ, ÅÓÌÉ ÅÓÔØ ÚÁ×ÅÄÏÍÏ ÂÏÌÅÅ ÎÁģÖÎÙÊ DT>>>> É ÎÅ ÍÅÎÅÅ ÜÆÆÅËÔÉ×ÎÙÊ ×ÁÒÉÁÎÔ. GS>>> ú×ÕÞÉÔ ÌÏÇÉÞÎÏ, ÎÏ ÅÓÌÉ ÓÈÅÍÁ ÒÁÚÒÁÂÏÔÁÎÁ ÐÒÁ×ÉÌØÎÏ, ÒÁÚÎÉÃÙ ÎÅ GS>>> ÂÕÄÅÔ. DT>> á ÎÅ×ÁÖÎÏ, ÂÕÄÅÔ ÉÌÉ ÎÅ ÂÕÄÅÔ.

GS> ÷ÁÖÎÏ. åÓÌÉ ÁÐÐÁÒÁÔÕÒÁ ËÒÉ×ÁÑ, ÐÒÏÇÒÁÍÍÎÙÍÉ "ÐÒÉÍÏÞËÁÍÉ" ÓÉÔÕÁÃÉÀ GS> ÏÓÏÂÅÎÎÏ ÎÅ ÉÓÐÒÁ×ÉÛØ.

ñ ÇÏ×ÏÒÀ - ÎÅ×ÁÖÎÏ ÄÌÑ ÐÒÏÇÒÁÍÍÙ. ðÒÏÇÒÁÍÍÁ ÔÏÖÅ ÎÅ ÄÏÌÖÎÁ ÂÙÔØ ËÒÉ×ÏÊ É ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÓÉÍÁÌØÎÏ ÎÁģÖÎÙÅ É ÂÅÚÏÐÁÓÎÙÅ ÐÏÄÈÏÄÙ, "×ÐÉÓÙ×ÁÀÝÉÅÓÑ" × ÔÒÅÂÕÅÍÕÀ ÜÆÆÅËÔÉ×ÎÏÓÔØ. HÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, ËÁË ÓËÏÎÓÔÒÕÉÒÏ×ÁÎÁ ÁÐÐÁÒÁÔÕÒÁ. çÄÅ ÔÒÅÂÏ×ÁÎÉÑ ÃÅÎÙ, Ë ÓÏÖÁÌÅÎÉÀ, ÞÁÝÅ ÍÅÛÁÀÔ ÓÄÅÌÁÔØ ×ӣ ÐÒÁ×ÉÌØÎÏ É ËÒÁÓÉ×Ï.

DT>> äÅÌÁÔØ ÎÁÄÏ _ÐÒÁ×ÉÌØÎÏ_.

GS> HÏ É ÎÅ ÒÁÚÄÕ×ÁÔØ ÎÅÐÒÉÎÃÉÐÉÁÌØÎÙÅ ×ÅÝÉ × ÆÁÎÁÔÉÞÅÓËÉÅ ÌÏÚÕÎÇÉ.

üÔÁ "ÎÅÐÒÉÎÃÉÐÉÁÌØÎÁÑ ×ÅÝØ" ÐÏËÁÚÙ×ÁÅÔ ÓÕÔØ ÐÏÄÈÏÄÁ ÔÏÇÏ ÉÌÉ ÉÎÏÇÏ ÒÁÚÒÁÂÏÔÞÉËÁ.

GS> ÷ÏÎ, Õ PIC'Ï× ×ÏÏÂÝÅ ÔÏÌØËÏ Ó ÎÏÖÅË ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÏ× ÞÉÔÁÅÔÓÑ, É GS> ÎÉÞÅÇÏ, ÎÁÒÏÄ ÎÅ ÖÁÌÕÅÔÓÑ.

ðÒÁ×ÉÌØÎÏ, ÚÎÁÞÉÔ ÎÁÄÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÑÞÅÊËÕ ÐÁÍÑÔÉ ÄÌÑ ÐÏÄÏÂÎÏÇÏ ÓÄ×ÉÇÏ×ÏÇÏ ÒÅÇÉÓÔÒÁ.

DT>> úÁÔÏ × ÄÒÕÇÏÊ ÒÁÚ ÎÅ ÎÁÓÔÕÐÉÛØ ÎÁ ÇÒÁÂÌÉ, ÐÒÉËÒÙÔÙÅ ÓÏÌÏÍËÏÊ.

GS> ðÏÄÁÊ × ÓÕÄ ÎÁ ÒÁÚÒÁÂÏÔÞÉËÏ× ÁÒÈÉÔÅËÔÕÒÙ PIC ËÏÎÔÒÏÌÌÅÒÏ× ;-)))

âÌÉÎ! ñ ÇÏ×ÏÒÀ ÓÏ×ÓÅÍ Ï ÄÒÕÇÏÍ! ÷ӣ, ÍÎÅ ÎÁÄÏÅÌÏ, ÉÚ×ÉÎÉ.

Dimmy.

Hello Dmitry.

Sun Oct 16 2005 23:50, Dmitry Orlov wrote to Michael Belousoff:

DO> 8080 - ÐÒÏÃÅÓÓÏÒ, Á ÎÅ ËÏÎÔÒÏÌÌÅÒ. é ÄÌÑ ÐÏÓÔÒÏÅÎÉÑ ÒÁÂÏÔÁÀÝÅÊ ÓÉÓÔÅÍÙ DO> ÔÒÅÂÏ×ÁÌ ËÕÞÉ ÏÂ×ÑÚËÉ. ÷ ÔÅ ×ÒÅÍÅÎÁ (ËÏÎÅà ×ÏÓØÍÉÄÅÓÑÔÙÈ) Ñ ÄÌÑ ÎÅÇÏ ÐÉÓÁÌ DO> ×ÏÏÂÝÅ × ËÏÄÁÈ.

õ ÎÁÓ × ËÏÄÁÈ ÔÏÖÅ ÐÉÓÁÌÉ, ÎÏ × ÐÅÒ×ÏÊ ÐÏÌÏ×ÉÎÅ 80-È. ðÏÔÏÍ ÎÁ ÁÓÓÅÍÂÌÅÒÅ. ðÏÔÏÍ × 85-Í ÐÒÉۣÌ Ñ, ÍÏÌÏÄÏÊ ÓÐÅÃÉÁÌÉÓÔ ;), É ÒÁÚÏÂÒÁÌÓÑ Ó ÜÔÉÍ ÓÁÍÙÍ ISIS-ÏÍ É PL/M.

DO> HÅ, ÎÕ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÁÓÓÅÍÂÌÅÒÏÍ - ËÏÎÅÞÎÏ ÐÒÏÇÒÅÓÓ. HÏ ÄÏ ó ÅÍÕ ËÁË ÄÏ DO> ëÉÅ×Á ÒÁËÏÍ.

õ ËÁÖÄÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ Ó×ÏÑ ÏÂÌÁÓÔØ ÐÒÉÍÅÎÅÎÉÑ. äÁ É ËÒÉÔÅÒÉÉ ÓÒÁ×ÎÅÎÉÑ ÒÁÚÎÙÅ ÂÙ×ÁÀÔ. PL/M ÂÙÌ ÏÞÅÎØ ÐÒÏÓÔÙÍ, ÓÔÒÏÇÉÍ É ÑÓÎÙÍ ÑÚÙËÏÍ.

Dimmy.

Hello Andrey.

Mon Oct 17 2005 13:28, Andrey Solomatov wrote to Olga Nonova:

AS> åÓÌÉ ÖÅ ÇÏ×ÏÒÉÔØ Ï PL/1 - ÔÏ ÏÎ × ÎÅËÏÔÏÒÏÍ ÓÍÙÓÌÅ ÁÎÁÌÏÇÉÞÅÎ óÉ - ÉÂÏ AS> Á) "ÐÉÓÁÎ ÐÒÁËÔÉËÁÍÉ ÏÔ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ", Á ×Ï×ÓÅ ÎÅ "ÁËÁÄÅÍÉËÁÍÉ"; AS> Â) × ÎÅÇÏ ÐÏÎÁÐÉÈÁÌÉ ×ӣ, ÞÔÏ ÔÏÌØËÏ ÍÏÇÌÏ ÐÒÉÄÔÉ × ÇÏÌÏ×Õ ÅÇÏ Á×ÔÏÒÁÍ.

úÁÔÏ ×ӣ-ÔÁËÉ ÁÌÇÏÌÏÐÏÄÏÂÎÙÊ. ;)

Dimmy.

Mon, 17 Oct 2005 08:01:46 +0400 Nickita A Startcev wrote to Alex Mogilnikov:

AM>> HÅ ÐÏÌØÚÕÀÓØ ÉÍÉ. á ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÄÅËÌÁÒÁÃÉÉ ÂÙÌÉ ×ÎÑÔÎÙÍÉ, AM>> ÐÒÏÓÔÏ ÎÅ ÎÁÄÏ ÐÙÔÁÔØÓÑ ÚÁÐÉÈÎÕÔØ ÓÌÏÖÎÕÀ ÍÎÏÇÏÜÔÁÖÎÕÀ ÄÅËÌÁÒÁÃÉÀ × AM>> ÏÄÎÏ ×ÙÒÁÖÅÎÉÅ. åÓÔØ ÚÁÍÅÞÁÔÅÌØÎÁÑ ÛÔÕËÁ - typedef, ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÑÅÔ AM>> ÄÁ×ÁÔØ ÔÉÐÁÍ ÏÓÍÙÓÌÅÎÎÙÅ ÉÍÅÎÁ É ÄÅÌÁÔØ ÄÅËÌÁÒÁÃÉÉ ×ÎÑÔÎÙÍÉ É AM>> ÐÒÏÚÒÁÞÎÙÍÉ. óÒÁ×ÎÉ Ä×Á ×ÁÒÉÁÎÔÁ:

NA> ÈÏÒÏÛÏ. NA> ðÕÓÔØ Õ ÎÁÓ ÅÓÔØ char **Dictionary, ðÒÅÄÓÔÁ×ÌÑÀÝÉÊ ÉÚ ÓÅÂÑ ÍÁÓÓÉ× NA> ÕËÁÚÁÔÅÌÅÊ ÎÁ ÓÔÒÏËÉ. ÎÅÏÂÈÏÄÉÍÏ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÜÔÉ ÓÔÒÏËÉ ÐÏ ÁÌÆÁ×ÉÔÕ. NA> éÚ×ÅÓÔÎÏ, ÞÔÏ ×ÓÅÇÏ ÓÔÒÏË N. NA> void qsort(void *base, size_t nmemb, size_t size, NA> int(*compar)(const void*, const void*));

NA> ëÁË ÎÕÖÎÏ ÐÉÓÁÔØ, ÞÔÏ ×ÙÚÏ× qsort'Á ÎÅ ×ÙÇÌÑÄÅÌ ÖÕÔËÏÊ ÍÅÛÁÎÉÎÏÊ ÉÚ NA> ÁÍÐÅÒÓÁÎÄÏ× É Ú×ÅÚÄÏÞÅË?

÷ÏÚÍÏÖÎÏ ÎÅ × ÔÅÍÕ, ÎÏ ÎÁ ÜÔÏÔ ËÏÎËÒÅÔÎÙÊ ÐÒÉÍÅÒ ÍÏÖÎÏ ÏÔ×ÅÔÉÔØ, ÞÔÏ ÎÁÄÏ ÉÓÐÏÌØÚÏ×ÁÔØ STL'ÎÙÅ string'É É sort. ôÏÇÄÁ ÂÕÄÅÔ ×ÓÅ ÐÒÏÚÒÁÞÎÏ, ÌÁËÏÎÉÞÎÏ, ÎÉËÁËÉÈ ÍÅÛÁÎÉÎÙ É Ú×ÅÚÄÏÞÅË.

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 18 Oct 2005 07:35:23

+0400:

DO>> 8080 - процессор, а не контроллер. И для построения DO>> работающей системы требовал кучи обвязки. В те времена (конец DO>> восьмидесятых) я для него писал вообще в кодах.

DT> У нас в кодах тоже писали, но в первой половине 80-х. Потом DT> на ассемблере. DT> Потом в 85-м пришёл я, молодой специалист ;), и разобрался с DT> этим самым ISIS-ом и PL/M.

Там, куда я пришел работать до того времени вообще процессоры не применяли, я все с нуля начинал, и программы писал на самодельном "специалисте", но это уже чуть позже и там уже ассемблер появился. А потом появились РС и кросс-ассемблер для i51, а когда стал доступен PL/M, уже он был не актуален. А так plm80, isis, plm51 у меня до сих пор валяются...

DO>> Hе, ну по сравнению с ассемблером - конечно прогресс. Hо до С DO>> ему как до Киева раком.

DT> У каждого инструмента своя область применения. Да и критерии

Ну у С и PL/M одна область применения, только С с ней справляется лучше.

DT> сравнения разные бывают. PL/M был очень простым, строгим и DT> ясным языком.

И убогим весьма.

dima

formatting link

ðÒÉ×ÅÔ, *Alex*!

/×ÏÓËÒÅÓÅÎØÅ, 16 ÏËÔÑÂÒÑ 2005/ *Alex Mogilnikov* ÐÉÓÁÌ(Á) Ë *Dimmy Timchenko* ÐÏ ÐÏ×ÏÄÕ *WinAvr:*

[ËÕÓØ]

AM> é ÍÏÅ ÍÎÅÎÉÅ ÐÏ ÐÏ×ÏÄÕ ÌÕÞÛÅÊ ÞÉÔÁÅÍÏÓÔÉ - '{' ÎÁÐÒÉÍÅÒ ÌÕÞÛÅ ÞÅÍ AM> 'begin', ÔÁË ËÁË ×ÉÚÕÁÌØÎÏ ÓÉÌØÎÅÅ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÄÒÕÇÉÈ ÌÅËÓÅÍ - ÔÁËÉÈ AM> ËÁË ÉÍÅÎÁ ÔÉÐÏ× É ÏÂßÅËÔÏ× (×ÏÔ ÔÅÂÅ É ÎÅÐÏÈÏÖÅÓÔØ ÓÉÎÔÁËÓÉÞÅÓËÉÈ AM> ÜÌÅÍÅÎÔÏ×).

÷ÏÏÂÝÅ-ÔÏ {} ÎÅ ÓÌÉÛËÏÍ ÓÉÌØÎÏ ÏÔÌÉÞÁÀÔÓÑ ÏÔ () (ÐÒÅÄ×ÉÖÕ ×ÏÚÒÁÖÅÎÉÑ - "ÉÓÐÏÌØÚÕÊÔÅ ÐÒÁ×ÉÌØÎÙÊ ÛÒÉÆÔ). ðÌÀÓ × óÉ ÔÒÁÄÉÃÉÏÎÎÏ ÎÅ×ÎÑÔÎÁÑ ÄÉÁÇÎÏÓÔÉËÁ ÏÛÉÂÏË - ÎÅÞÁÑÎÎÏ ÐÒÏÐÕÝÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÔÉÐÁ × ÄÅËÌÁÒÁÃÉÉ:

TMytype myvar;

óÇÅÎÅÒÉÔ *ÔÁËÕÀ* ÌÁ×ÉÎÕ ÁÈÉÎÎÅÉ, ÎÅ ÉÍÅÀÝÅÊ ÎÉËÁËÏÇÏ ÏÔÎÏÛÅÎÉÑ Ë ÒÅÁÌØÎÏÓÔÉ. [ËÕÓØ]
ðÒÉ×ÅÔ Nickita!

17 Oct 05 09:01, Nickita A Startcev ÐÉÓÁÌ Alex Mogilnikov:

NS> ðÕÓÔØ Õ ÎÁÓ ÅÓÔØ char **Dictionary, ðÒÅÄÓÔÁ×ÌÑÀÝÉÊ ÉÚ ÓÅÂÑ ÍÁÓÓÉ× NS> ÕËÁÚÁÔÅÌÅÊ ÎÁ ÓÔÒÏËÉ. ÎÅÏÂÈÏÄÉÍÏ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÜÔÉ ÓÔÒÏËÉ ÐÏ ÁÌÆÁ×ÉÔÕ. NS> éÚ×ÅÓÔÎÏ, ÞÔÏ ×ÓÅÇÏ ÓÔÒÏË N. NS> void qsort(void *base, size_t nmemb, size_t size, NS> int(*compar)(const void*, const void*));

NS> ëÁË ÎÕÖÎÏ ÐÉÓÁÔØ, ÞÔÏ ×ÙÚÏ× qsort'Á ÎÅ ×ÙÇÌÑÄÅÌ ÖÕÔËÏÊ ÍÅÛÁÎÉÎÏÊ ÉÚ NS> ÁÍÐÅÒÓÁÎÄÏ× É Ú×ÅÚÄÏÞÅË?

á ÔÕÔ ÎÉËÁËÏÊ ÍÅÛÁÎÉÎÙ É ÔÁË ÎÅÔ:

int rc = qsort(Dictionary, N, size, compare);

HÁÄÏ ÐÒÏÑ×ÉÔØ ÉÚÒÑÄÎÕÀ ÉÚÏÂÒÅÔÁÔÅÌØÎÏÓÔØ, ÞÔÏÂÙ × ÜÔÏÍ ×ÙÚÏ×Å ÐÏÑ×ÉÌÁÓØ ÖÕÔËÁÑ ÍÅÛÁÎÉÎÁ ÉÚ ÁÍÐÅÒÓÁÎÄÏ× É Ú×ÅÚÄÏÞÅË. :)

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ÷ ÓÉÓÔÅÍÅ ×ÏÚÍÏÖÎÏ ÂÅÓËÏÎÅÞÎÏÅ ÞÉÓÌÏ ÐÒÏÃÅÓÓÏ× - ÄÏ 256.
ðÒÉ×ÅÔ Dimmy!

17 Oct 05 16:19, Dimmy Timchenko ÐÉÓÁÌ Alex Mogilnikov:

AM>> ? ôÁË short s = 0; - ÜÔÏ É ÅÓÔØ ÏÓÔÁÌØÎÏÊ ÓÌÕÞÁÊ. úÄÅÓØ ÎÅÔ AM>> ÎÉËÁËÉÈ ÌÉÔÅÒÁÌÏ×

DT> HÕ, ÅÓÌÉ "0" ÄÌÑ ÔÅÂÑ - ÎÅ ÌÉÔÅÒÁÌ, ÔÏÇÄÁ ÉÚ×ÉÎÉ, ÞÔÏ ÄÏÓÔÁÀ Ó×ÏÉÍÉ DT> ÇÌÕÐÙÍÉ ÒÁÚÇÏ×ÏÒÁÍÉ. :) ðÒÅÖÄÅ ÞÅÍ ÎÁ ÔÁËÉÅ ÔÅÍÙ ÏÂÝÁÔØÓÑ, ×ÉÄÉÍÏ, DT> ÎÁÄÏ ÄÏÇÏ×ÏÒÉÔØÓÑ Ï ÔÅÒÍÉÎÏÌÏÇÉÉ.

DT> éÚ ï'òÅÊÌÉ:

DT> 1.2.3 Literals DT> A literal is an integer, floating-point, Boolean, character, or string DT> constant.

[ÐÏÓËÉÐÁÎÏ] úÁÂÁ×ÎÏ. ÷ ÓÐÅÃÉÆÉËÁÃÉÉ ÑÚÙËÁ C Ñ ×ÓÔÒÅÔÉÌ ÕÐÏÍÉÎÁÎÉÅ ÔÏÌØËÏ Ä×ÕÈ ×ÉÄÏ× ÌÉÔÅÒÁÌÏ×: string literal É compound literal. HÉËÁËÉÅ ÄÒÕÇÉÅ ÜÌÅÍÅÎÔÙ ÑÚÙËÁ ÔÁÍ ÌÉÔÅÒÁÌÁÍÉ ÎÅ ÎÁÚÙ×ÁÀÔ. åÓÌÉ ÔÙ ÉÓÐÏÌØÚÕÅÛØ ÔÅÒÍÉÎÏÌÏÇÉÀ, ÏÔÓÕÔÓÔ×ÕÀÝÕÀ × ÓÐÅÃÉÆÉËÁÃÉÉ ÑÚÙËÁ, ÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ, ÉÍÅÅÔ ÓÍÙÓÌ ÚÁÒÁÎÅÅ ÄÏÇÏ×ÏÒÉÔØÓÑ Ï ÅÅ ÚÎÁÞÅÎÉÉ. :) ëÓÔÁÔÉ "0" (ÓÉÍ×ÏÌ × Ä×ÏÊÎÙÈ ËÁ×ÙÞËÁÈ) - ÜÔÏ ËÁË ÒÁÚ string literal. :) HÏ × ÍÏÅÍ ÐÒÉÍÅÒÅ ËÁ×ÙÞÅË ×ÏËÒÕÇ ÎÕÌÑ ÎÅ ÂÙÌÏ. ðÒÏÓÔÏ ÓÉÍ×ÏÌ 0 - ÜÔÏ É ÎÅ string literal, É ÎÅ compound literal.

DT> ÷ӣ ÏÞÅÎØ ÐÒÏÓÔÏ. þÉÓÌÏ, ÚÁÐÉÓÁÎÎÏÅ × ×ÉÄÅ ÌÉÔÅÒÁÌÁ (ÉÌÉ ËÏÎÓÔÁÎÔÎÏÅ DT> ×ÙÒÁÖÅÎÉÅ) ÎÅ ÐÒÉÎÁÄÌÅÖÉÔ Ë ËÁËÏÍÕ-ÔÏ ËÏÎËÒÅÔÎÏÍÕ, n-ÂÉÔÎÏÍÕ DT> ÃÅÌÏÞÉÓÌÅÎÎÏÍÕ ÉÌÉ ×ÅÝÅÓÔ×ÅÎÎÏÍÕ ÔÉÐÕ.

ïÐÑÔØ ÚÁÂÁ×ÎÏ. üÔÏ ÔÏÖÅ × Ô×ÏÅÊ ËÎÉÖËÅ ÎÁÐÉÓÁÎÏ? óÐÅÃÉÆÉËÁÃÉÑ ÑÚÙËÁ ÇÏ×ÏÒÉÔ ÏÂÒÁÔÎÏÅ: [#5] The type of an integer constant is the first of the corresponding list in which its value can be represented.

|| | Octal or Hexadecimal Suffix || Decimal Constant | Constant

-------------++-----------------------+------------------------ none ||int | int ||long int | unsigned int ||long long int | long int || | unsigned long int || | long long int || | unsigned long long int

-------------++-----------------------+------------------------ u or U ||unsigned int | unsigned int ||unsigned long int | unsigned long int ||unsigned long long int | unsigned long long int

-------------++-----------------------+------------------------ l or L ||long int | long int ||long long int | unsigned long int || | long long int || | unsigned long long int

-------------++-----------------------+------------------------ Both u or U ||unsigned long int | unsigned long int and l or L ||unsigned long long int | unsigned long long int

-------------++-----------------------+------------------------ ll or LL ||long long int | long long int || | unsigned long long int

-------------++-----------------------+------------------------ Both u or U ||unsigned long long int | unsigned long long int and ll or LL || |

óÏÇÌÁÓÎÏ ÜÔÉÍ ÐÒÁ×ÉÌÁÍ ËÏÎÓÔÁÎÔÁ 0 ÉÍÅÅÔ ÔÉÐ int.

AM>> ëÁË Ñ ÕÖÅ ÐÉÓÁÌ, ÐÒÁ×ÉÌÁ ×ÙÐÏÌÎÅÎÉÑ ÏÐÅÒÁÃÉÑ (× ÔÏÍ ÞÉÓÌÅ integer AM>> promotion) ÏÐÒÅÄÅÌÑÀ ÒÅÚÕÌØÔÁÔ, ËÏÔÏÒÙÊ ÄÏÌÖÎÁ ÄÁÔØ ÏÐÅÒÁÃÉÑ, É AM>> ÎÉËÁË ÎÅ ÏÇÒÁÎÉÞÉ×ÁÅÔ ËÏÍÐÉÌÑÔÏÒ × ÓÐÏÓÏÂÅ ÄÏÓÔÉÖÅÎÉÑ ÜÔÏÇÏ AM>> ÒÅÚÕÌØÔÁÔÁ.

DT> äÁ ÎÅÔ, ËÁË ÒÁÚ ÜÔÉ ÐÒÁ×ÉÌÁ ÐÒÑÍÏ ÏÇÏ×ÁÒÉ×ÁÀÔ, ËÁË É Ë ËÁËÉÍ ÔÉÐÁÍ DT> ÐÒÉ×ÏÄÑÔÓÑ ÞÁÓÔÉ ×ÙÒÁÖÅÎÉÑ.

üÔÉ ÐÒÁ×ÉÌÁ ÏÐÒÅÄÅÌÑÀÔ, ËÁËÏÊ ÒÅÚÕÌØÔÁÔ ÄÏÌÖÅÎ ÐÏÌÕÞÉÔØÓÑ × ÔÏÞËÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ. íÅÖÄÕ Ä×ÕÍÑ ÓÏÓÅÄÎÉÍÉ ÔÏÞËÁÍÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ËÏÍÐÉÌÑÔÏÒ ÉÍÅÅÔ ÐÒÁ×Ï ÓÇÅÎÅÒÉÔØ ÌÀÂÏÊ ËÏÄ, ÄÁÀÝÉÊ ÐÒÁ×ÉÌØÎÙÊ ÒÅÚÕÌØÔÁÔ (ÔÏ ÅÓÔØ ÒÅÚÕÌØÔÁÔ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÐÒÁ×ÉÌÁÍ ÑÚÙËÁ). ÷ ÏÂÓÕÖÄÁÅÍÏÍ ÐÒÉÍÅÒÅ ÔÏÞËÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ Ñ×ÌÑÅÔÓÑ ×ÏÚ×ÒÁÝÁÅÍÙÊ ÆÕÎËÃÉÅÊ ÂÁÊÔ. éÌÉ × Ô×ÏÅÊ ËÎÉÇÅ É ÐÒÏ ÔÏÞËÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÁÐÉÓÁÎÏ ÓÏ×ÓÅÍ ÎÅ ÔÏ, ÞÔÏ × ÓÐÅÃÉÆÉËÁÃÉÉ ÑÚÙËÁ? :)

DT> é ÔÏÔ ÖÅ IAR, ÎÁÐÒÉÍÅÒ, ÄÁÖÅ ÐÒÅÄÌÁÇÁeÔ DT> ÏÐÃÉÀ: ÓÞÉÔÁÔØ double 64- ÉÌÉ 32-ÂÉÔÎÙÍ, ÐÏÔÏÍÕ ËÁË ÐÒÉ ×ÙÞÉÓÌÅÎÉÉ DT> ×ÅÝÅÓÔ×ÅÎÎÏÇÏ ×ÙÒÁÖÅÎÉÑ ÅÇÏ ÜÌÅÍÅÎÔÙ ÂÕÄÕÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÙ Ë ÔÉÐÕ DT> double. HÅÚÁ×ÉÓÉÍÏ ÏÔ ÎÁÛÅÇÏ ÖÅÌÁÎÉÑ. ðÏÒÏÖÄÁÑ ÎÅÜÆÆÅËÔÉ×ÎÙÊ ËÏÄ.

üÔÏ ÓÏ×ÓÅÍ ÄÒÕÇÁÑ ÔÅÍÁ. åÓÌÉ ÂÙ ÒÅÞØ ÛÌÁ Ï ÍÁËÓÉÍÉÚÁÃÉÉ ÜÆÆÅËÔÉ×ÎÏÓÔÉ ËÏÄÁ, Ñ ÂÙ É ÎÅ ×ÓÔÕÐÁÌ × ÄÉÓËÕÓÓÉÀ. óÁÍÙÊ ÜÆÆÅËÔÉ×ÎÙÊ ËÏÄ ÄÏÓÔÉÇÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÁÓÓÅÍÂÌÅÒÁ. HÅÄÁ×ÎÏ, ËÓÔÁÔÉ, Ñ ÐÒÉ×ÏÄÉÌ ÐÒÉÍÅÒ ÏÐÅÒÁÔÏÒÁ "ÕÍÎÏÖÅÎÉÑ" ÎÁ ÁÓÓÅÍÂÌÅÒÅ.

DT> ïÄÎÁËÏ × ÐÒÁ×ÉÌÁÈ ÜÔÏ promotion ÏÐÉÓÁÎÏ ޣÔËÏ É ÎÅÄ×ÕÓÍÙÓÌÅÎÎÏ.

þÔÏÂÙ ÒÁÓÛÉÒÉÔØ ÏÂÌÁÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ÏÐÅÒÁÃÉÉ.

DT> òÁÚÎÉÃÁ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ - × ÜÆÆÅËÔÉ×ÎÏÓÔÉ.

ðÏÄÍÅÎÁ ÔÅÍÙ. HÕÖÎÁ ÜÆÆÅËÔÉ×ÎÏÓÔØ - ÒÅÁÌÉÚÕÊ ÎÁ ÁÓÓÅÍÂÌÅÒÅ.

DT> é ×ÙÈÏÄÉÔ, ÞÔÏ ×ÓÅ ÜÔÉ DT> ÏÐÅÒÁÔÏÒÙ É ÐÒÏÞÉÅ ËÒÁÓÏÔÙ ÎÁÍ ÎÅ ÐÏÍÏÇÕÔ É ÎÁÄÏ ÐÉÓÁÔØ ÆÕÎËÃÉÀ ÎÁ DT> ÁÓÓÅÍÂÌÅÒÅ. åÓÌÉ ÖÅ ÒÅÞØ ÏÂ ÜÆÆÅËÔÉ×ÎÏÓÔÉ ÎÅ ÉģÔ, ÔÏ É ÐÕÓÔØ ÓÅÂÅ DT> "ÐÒÏÍÏÕÔÉÔ" ÈÏÔØ ÄÏ 32 ÂÉÔ, ÈÏÔØ ÄÏ 64.

HÁÌÉÞÉÅ ÉÌÉ ÏÔÓÕÔÓÔ×ÉÅ ÜÔÏÇÏ ÐÒÁ×ÉÌÁ ÎÅ ×ÌÉÑÅÔ ÎÁ ÜÆÆÅËÔÉ×ÎÏÓÔØ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÒÅÔÎÏÇÏ ×ÙÒÁÖÅÎÉÑ. ïÎÏ ÌÉÛØ ÏÐÒÅÄÅÌÑÅÔ ÏÂÌÁÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ÏÐÅÒÁÃÉÉ.

DT>>> ôÁË ËÁËÉÅ ÖÅ ÜÔÏ ÂÉÂÌÉÏÔÅËÉ? :) ðÏÌØÚÁ ÂÉÂÌÉÏÔÅËÉ × ÔÏÍ, ÞÔÏÂÙ DT>>> ÓÁÍÏÍÕ ÎÅ ÐÉÓÁÔØ. :)

DT> HÕ Á Ñ ÉÍÅÌ × ×ÉÄÕ ÎÅÓËÏÌØËÏ ÉÎÏÅ ÚÎÁÞÅÎÉÅ: ÇÏÔÏ×ÙÊ, ÏÔÌÁÖÅÎÎÙÊ ËÏÄ, DT> ËÏÔÏÒÙÊ ÔÅÂÅ ÎÅ ÎÁÄÏ ÐÉÓÁÔØ ÓÁÍÏÍÕ. éÄÅÁÌØÎÏ - × ×ÉÄÅ ÉÓÈÏÄÎÉËÏ×.

HÕ ÔÁË ÐÏÌÎÏ × ÉÎÔÅÒÎÅÔÅ ÎÁ ×ÓÅ ÓÌÕÞÁÉ ÖÉÚÎÉ. õ ÍÅÎÑ ÎÁ ËÏÍÐÁÈ ×ÓÑ ÏÐÅÒÁÃÉÏÎËÁ É 99% ÐÒÏÇÒÁÍÍ ÓÏÂÒÁÎÙ ÉÚ ÓËÁÞÁÎÎÙÈ ÉÚ ÉÎÔÅÒÎÅÔÁ ÉÓÈÏÄÎÉËÏ×.

DT> á ÍÏÄÕÌÉ (ËÓÔÁÔÉ, × C/C++ ÍÏÄÕÌÅÊ ÎÅÔ)

á ÏÎÉ ÎÅ ÎÁ ó/C++, ÜÔÏ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ. ðÏÄ ÍÏÄÕÌÅÍ Ñ ÐÏÄÒÁÚÕÍÅ×ÁÌ ÅÄÉÎÉÃÕ ËÏÍÐÉÌÑÃÉÉ (ÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÑ).

DT> ÍÏÖÎÏ ÂÒÁÔØ É ÉÚ ÏÔÄÅÌØÎÙÈ DT> ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×. óÅÊÞÁÓ ÔÁËÉÅ ÐÏÄÒÏÂÎÏÓÔÉ ÒÁÂÏÔÙ ÌÉÎËÅÒÁ DT> ÎÅÓÕÝÅÓÔ×ÅÎÎÙ. üÔÏ ÒÁÎØÛÅ ÔÁËÉÅ ÔÏÎËÏÓÔÉ ÓÉÌØÎÏ ×ÌÉÑÌÉ ÎÁ ÓËÏÒÏÓÔØ DT> ËÏÍÐÉÌÑÃÉÉ...

äÅÌÏ ÎÅ × ÓËÏÒÏÓÔÉ, Á × ÏÂßÅÍÅ ×ÙÈÏÄÎÏÇÏ ÏÂßÅËÔÎÏÇÏ ÆÁÊÌÁ. HÁÐÒÉÍÅÒ Õ ÍÅÎÑ × libc.a ÄÌÑ avr ÂÏÌÅÅ ÓÏÔÎÉ ÏÂßÅËÔÎÙÊ ÆÁÊÌÏ×, ÉÈ ÏÂÝÉÊ ÒÁÚÍÅÒ ÂÏÌÅÅ 300 ËÂÁÊÔ. åÓÌÉ ÌÉÎËÅÒ ÂÕÄÅÔ ÌÉÎËÏ×ÁÔØ ÉÈ ×ÓÅ × ËÁÖÄÙÊ ÐÒÏÅËÔ, ÎÉ ÏÄÉÎ ÐÒÏÅËÔ ÎÅ ×ÌÅÚÅÔ ÎÉ × ÏÄÉÎ ËÒÉÓÔÁÌÌ. :) á ÔÁË ÌÉÎËÅÒ ÂÅÒÅÔ ÔÏÌØËÏ ÎÕÖÎÙÅ ÆÁÊÌÙ ÉÚ ÂÉÂÌÉÏÔÅËÉ. ðÒÁ×ÄÁ Ñ ÜÔÏÊ ÂÉÂÌÉÏÔÅËÏÊ (É ×ÏÏÂÝÅ avr-libc) ÎÅ ÐÏÌØÚÕÀÓØ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... áÜÒÏ×ÏÌÎÙ: ÍÅÎÔÏÌ É Ü×ËÁÌÉÐÔ ÄÌÑ ÎÏÓÁ, ÍÅÄ É ÌÉÍÏÎ ÄÌÑ ÒÏÔÁ!

Hello Dmitry.

Mon Oct 17 2005 19:39, Dmitry Orlov wrote to me:

DT>> á × áÄÅ - ÅÓÔØ. :) âÏÌÅÅ ÔÏÇÏ, ÔÁÍ ÐÁÒÁÍÅÔÒ ÃÉËÌÁ ÏÂßÑ×ÌÑÅÔÓÑ DT>> ÓÁÍÉÍ ÆÁËÔÏÍ Ó×ÏÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÚÁÇÏÌÏ×ËÅ ÃÉËÌÁ. ÷ DT>> ÐÒÅÄÅÌÁÈ ÃÉËÌÁ ÏÎ read only (!), Á ÐÏ ÚÁ×ÅÒÛÅÎÉÉ ÃÉËÌÁ DT>> ÕÎÉÞÔÏÖÁÅÔÓÑ.

DO> HÕ É ÚÁÞÅÍ ÍÎÅ ÜÔÉ ÎÁ×ÏÒÏÔÙ?

ôÙ ÐÒÏÓÔÏ ÎÅ ÐÏÎÉÍÁÅÛØ ÓÁÍÏÊ ÓÕÔÉ ÐÏÄÈÏÄÁ, ÒÅÁÌÉÚÏ×ÁÎÎÏÇÏ × áÄÅ. íÁËÓÉÍÁÌØÎÁÑ ÎÁģÖÎÏÓÔØ É ÂÅÚÏÐÁÓÎÏÓÔØ ÓÏ ÓÔÏÒÏÎÙ ÑÚÙËÁ. ÷ӣ, ÞÔÏ ÍÏÖÎÏ ÐÒÏ×ÅÒÉÔØ ÎÁ ÜÔÁÐÅ ËÏÍÐÉÌÑÃÉÉ, ÄÏÌÖÎÏ ÂÙÔØ ÐÒÏ×ÅÒÅÎÏ. ÷ ËÏÎÃÅ ËÏÎÃÏ× ÄÌÑ DoD ÄÅÌÁÌÓÑ.

DO> ÷ ÐÁÓËÁÌÅ Ñ ËÓÔÁÔÉ ÉÎÏÇÄÁ ÐÏÌØÚÏ×ÁÌÓÑ ÐÁÒÁÍÅÔÒÏÍ for ÎÁ ÚÁÐÉÓØ,

íÁÌÁÄÜÃØ.

DO> × ó ÃÉËÌ for - ×ÏÏÂÝÅ ÒÁÚÎÏ×ÉÄÎÏÓÔØ while É ËÁË ÔÁËÏ×ÏÇÏ ÐÁÒÁÍÅÔÒÁ DO> ÃÉËÌÁ ÔÁÍ ×ÏÏÂÝÅ ÎÅÔ.

é ÔÅÍ ÎÅ ÍÅÎÅÅ "ÓÏÄÅÒÖÉÍÏÅ ÓËÏÂÏË" ÚÁÞÅÍ-ÔÏ ××ÅÌÉ × scope ÏÐÅÒÁÔÏÒÁ ÃÉËÌÁ.

DO>>> ûÔÕËÁ ÂÅÚÕÓÌÏ×ÎÏ ÕÄÏÂÎÁÑ É ÏÐÔÉÍÉÚÁÔÏÒÕ ÌÉÛÎÑÑ ÐÏÄÓËÁÚËÁ, ÎÏ DO>>> ÂÅÚ ÎÅÅ ÖÉÔØ ×ÐÏÌÎÅ ÍÏÖÎÏ.

DT>> íÏÖÎÏ, ÅÓÌÉ ÁËÔÉ×ÎÏ ÐÏÌØÚÏ×ÁÔØÓÑ ËÌÁÓÓÁÍÉ...

DO> ñ ËÌÁÓÓÁÍÉ ÎÅ ÐÏÌØÚÕÀÓØ...

HÕ, Ñ ÐÏÌØÚÕÀÓØ ÜÐÉÚÏÄÉÞÅÓËÉ. ðÒÏÓÔÏ ÐÏÔÏÍÕ, ÞÔÏ × C++ ËÌÁÓÓÙ ×ÍÅÓÔÏ ×ÓÅÇÏ. :) ïïð ÎÅ Õ×ÁÖÁÀ. óÏÍÎÉÔÅÌØÎÁÑ ÔÅÈÎÏÌÏÇÉÑ. óÌÉÛËÏÍ ÓÉÌØÎÏ Õ×ÅÌÉÞÉ×ÁÅÔ "ÐÁÒÁÚÉÔÎÕÀ Ó×ÑÚÎÏÓÔØ" É ÓÔÒÕËÔÕÒÎÕÀ ÓÌÏÖÎÏÓÔØ ÐÒÏÇÒÁÍÍÙ.

DT>>>> íÏÖÎÏ, ÎÏ ÏÎÏ ÎÅ ÉÎÔÅÇÒÉÒÏ×ÁÎÏ × ÑÚÙË. HÁÐÒÉÍÅÒ, × ÐÁÓËÁÌÅ DT>>>> ÒÁÚÍÅÒÎÏÓÔÉ ÍÁÓÓÉ×Ï× ÚÁÄÁÀÔÓÑ ÄÉÁÐÁÚÏÎÁÍÉ,

DO>>> ôÏÌËÕ-ÔÏ. óÏÍÎÉÔÅÌØÎÏÅ ÐÒÅÉÍÕÝÅÓÔ×Ï.

DT>> ðÏÞÅÍÕ? õÄÏÂÎÅÅ É ÕÎÉ×ÅÒÓÁÌØÎÅÅ, ÞÅÍ × C.

DO> úÁÔÏ × ó ÂÌÉÖÅ Ë ÒÅÁÌÉÚÁÃÉÉ.

á ÚÁÞÅÍ ñ÷õ ÂÙÔØ ÂÌÉÖÅ Ë ÒÅÁÌÉÚÁÃÉÉ? ôÏÇÄÁ ÕÖ ÌÕÞÛÅ ÍÁËÒÏÁÓÓÅÍÂÌÅÒ. ôÅÎÄÅÎÃÉÑ-ÔÏ Ë "ÐÏ×ÙÛÅÎÉÀ ÕÒÏ×ÎÑ" ÑÚÙËÏ×. üÔÏ ÐÒÏÓÔÏ ÄÏ embedded ÐÏËÁ ÄÏÂÒÁÌÓÑ ÔÏÌØËÏ C, ÎÕ ×ÏÔ ÎÁÞÉÎÁÅÔ C++ ÄÏÂÉÒÁÔØÓÑ. :)

DO> âÕÄÅÔ. ëÓÔÁÔÉ tp ÌÅÇËÏ ËÏÍÐÉÌÉÒÕÅÔ

DO> var ds: DigSet;

DO> begin DO> ds := ds+['d']; DO> end.

äÁ, ÐÒÏ×ÅÒÉÌ - ÄÅÊÓÔ×ÉÔÅÌØÎÏ. ñ×ÎÙÊ ÂÁÇ. é ÎÅ ÔÏÌØËÏ ËÏÍÐÉÌÉÒÕÅÔÓÑ, ÎÏ É runtime error ÎÅ ÇÅÎÅÒÉÔ.

DO> ÷ÏÂÝÅÍ × òóÜÛÎÏÍ ÐÁÓËÁÌÅ ÜÔÏ ×ÓÅ ÎÅ ÍÅÛÁÅÔ, Á ÉÎÏÇÄÁ É ÐÒÉÑÔÎÏ, ÎÏ DO> ÔÁÝÉÔØ ×ÓÅ ÜÔÉ ÎÁ×ÏÒÏÔÙ × embedded Ñ ÓÞÉÔÁÀ ÓÏ×ÅÒÛÅÎÎÏ ÌÉÛÎÉÍ.

ëÔÏ-ÔÏ É C++, Á ËÔÏ-ÔÏ É C ÓÞÉÔÁÅÔ ÓÏ×ÅÒÛÅÎÎÏ ÌÉÛÎÉÍ. ;)

DO> íÅÖÄÕ ÐÒÏÞÉÍ, ÔÕÔ ÅÝÅ ÏÄÉÎ ËÁÍÕÛÅË × ÏÇÏÒÏÄ ÒÕÇÁÀÝÉÈ ó ÚÁ DO> ÎÅÏÄÎÏÚÎÁÞÎÏÓÔØ ÓÉÍ×ÏÌÏ×. ÷ ðÁÓËÁÌÅ [] ÉÓÐÏÌØÚÕÅÔÓÑ É ÄÌÑ ÉÎÄÅËÓÁÃÉÉ DO> ÍÁÓÓÉ×Á É ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ËÏÎÓÔÁÎÔ ÔÉÐÁ ÍÎÏÖÅÓÔ×Ï.

äÁ. é Åݣ ÔÁÍ ÞÔÏ-ÔÏ ÂÙÌÏ × ÄÅÌØÆÉ ÔÒÅÔØÅ.

DT>> ÷ ÏÔÌÉÞÉÅ ÏÔ ×ÅÓØÍÁ ÏÒÔÏÇÏÎÁÌØÎÏÊ É ÓÉÍÍÅÔÒÉÞÎÏÊ áÄÙ.

DO> äÁ ÎÅÔ ÎÉËÁËÏÊ áÄÙ É ÕÖÅ ÏÞÅ×ÉÄÎÏ ÎÅ ÂÕÄÅÔ.

ðÏÓÍÏÔÒÉÍ. :)

DT>> HÕ, × ÏÂÝÅÍ, ÌÏÇÉÞÎÏ. HÏ ×ӣ ÖÅ ÌÅÇÞÅ ÒÁÚÏÂÒÁÔØÓÑ × ËÌÀÞÅ×ÙÈ DT>> ÓÌÏ×ÁÈ, ÞÅÍ × ÎÁÂÏÒÅ ÓÐÅÃÓÉÍ×ÏÌÏ×.

DO> ÷ ÐÁÓËÁÌÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÓÉÍ×ÏÌ ^, × ó - * , ËÁËÉÅ ËÌÀÞÅ×ÙÅ ÓÌÏ×Á?

÷ ðÁÓËÁÌÅ, ÐÏ-ÍÏÅÍÕ, ÐÒÏÓÔÏ ÎÅ×ÏÚÍÏÖÎÏ ÏÂßÑ×ÉÔØ ÔÁËÕÀ ÂÏÄÑÇÕ, ËÁË × C, ÏÄÎÏÊ ÓÔÒÏËÏÊ. :) á ÐÏ ÐÏ×ÏÄÕ ^ - ÉÎÆÉËÓÎÁÑ ÎÏÔÁÃÉÑ ÒÁÚÙÍÅÎÏ×ÁÎÉÑ ÇÏÒÁÚÄÏ ÕÄÏÂÎÅÅ. ïÓÏÂÅÎÎÏ ËÏÇÄÁ Ñ ÐÉÛÕ ÞÔÏ-ÔÏ ×ÒÏÄÅ

DynArray[i]^[j] DynRecord[i]^.member

ëÁÖÅÔÓÑ, × C ÐÒÉÍÅÎÉÌÉ ÐÒÅÆÉËÓÎÕÀ ÔÏÌØËÏ ÐÏÔÏÍÕ, ÞÔÏ ÉÎÆÉËÓÎÁÑ "*" - ÜÔÏ ÕÍÎÏÖÅÎÉÅ. :)

DO>>> char a, b; DO>>> s = (short)a+b;

DO>>> þÔÏ ÔÕÔ ÎÅ ÏÞÅ×ÉÄÎÏ? âÏÌÅÅ ÔÏÇÏ, × ÐÁÓËÁÌÅ ÔÁ ÖÅ ÐÒÏÂÌÅÍÁ Ó DO>>> ÔÅÍ ÖÅ ÒÅÛÅÎÉÅÍ (ÐÒÁ×ÄÁ ÎÅÓÔÁÎÄÁÒÔÎÙÍ).

DT>> ôÁË É É ÞÅÇÏ? HÅÕÖÅÌÉ ÐÏ ÄÏÒÏÇÅ, × ÒÁÊÏÎÅ ÐÌÀÓÁ ;), a É b ÎÅ DT>> ÂÕÄÕÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÙ × int?

DO> åÓÌÉ ÎÁÐÉÓÁÎÏ short, ÔÏ × short É ÂÕÄÕÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÙ.

üÔÏ × ÒÁÊÏÎÅ "=".

Dimmy.

Hello Dmitry.

Mon Oct 17 2005 19:50, Dmitry Orlov wrote to me:

DT>> ðÏÓËÏÌØËÕ ÞÉÓÌÏ ÂÅÚÚÎÁËÏ×ÏÅ, ÔÏ, ÓÌÅÄÏ×ÁÔÅÌØÎÏ, ÐÒÉÍÅÎÑÅÔÓÑ DT>> ÍÏÄÕÌØÎÁÑ ÁÒÉÆÍÅÔÉËÁ, É 100b+200b ÄÏÌÖÎÏ ÂÙÔØ 44. åÓÌÉ ÖÅ DT>> ÞÉÓÌÁ ÚÎÁËÏ×ÙÅ, ÄÏÌÖÎÏ ÆÉËÓÉÒÏ×ÁÔØÓÑ É ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ DT>> ÐÅÒÅÐÏÌÎÅÎÉÅ.

DO> åÒÕÎÄÁ ËÁËÁÑ-ÔÏ. ëÁËÁÑ ÒÁÚÎÉÃÁ ÚÎÁËÏ×ÙÅ ÉÌÉ ÂÅÚÚÎÁËÏ×ÙÅ ÞÉÓÌÁ? ïÐÅÒÁÃÉÑ DO> ÓÌÏÖÅÎÉÑ ÄÌÑ ÎÉÈ ÎÅ ÏÔÌÉÞÁÅÔÓÑ. ëÅÍ É ËÁË ÄÏÌÖÎÏ ÐÅÒÅÐÏÌÎÅÎÉÅ DO> ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ?

õÇÕ. éÎÔÅÒÅÓÎÏ, ÚÁÞÅÍ × PSW Õ ÐÒÏÃÅÓÓÏÒÏ× É íë ÅÓÔØ ÂÉÔ Overflow? :) é ÐÏÞÅÍÕ ÏÎ ÐÒÉÍÅÎÑÅÔÓÑ ÉÍÅÎÎÏ × ÚÎÁËÏ×ÏÊ ÁÒÉÆÍÅÔÉËÅ?

AM>>> åÓÌÉ ÄÁ, ÔÏ C++ ÐÏÚ×ÏÌÑÅÔ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ TMy8bitByte É AM>>> ÏÐÅÒÁÔÏÒÙ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÉÍ.

DT>> á ËÁË ÔÙ ÉÈ ÏÐÒÅÄÅÌÉÛØ, ÅÓÌÉ ÎÅ ÞÅÒÅÚ ÓÌÏÖÅÎÉÅ ÂÁÚÏ×ÙÈ ÔÉÐÏ×? DT>> ëÏÔÏÒÏÅ ÏÐÑÔØ ÖÅ ÂÕÄÅÔ ÐÒÏÉÓÈÏÄÉÔØ × 16-ÂÉÔÎÏÊ ÁÒÉÆÍÅÔÉËÅ.

DO> ðÏÞÅÍÕ × 16ÔÉÂÉÔÎÏÊ? é ËÁËÉÅ ÓÏÂÓÔ×ÅÎÎÏ ÁÌØÔÅÒÎÁÔÉ×Ù ÂÁÚÏ×ÙÍ ÄÌÑ DO> ÃÅÌÅ×ÏÊ ÐÌÁÔÆÏÒÍÙ ÔÉÐÁÍ?

(ÔÅÒÐÅÌÉ×Ï) ÐÏÔÏÍÕ ÞÔÏ Type Promotion, Á ÔÉÐ int × C ÔÒÁÄÉÃÉÏÎÎÏ 16-ÂÉÔÎÙÊ.

DT>>>> ×ÙÒÁÖÁÔØÓÑ ÒÁÚÎÙÍÉ, ÎÅÐÏÈÏÖÉÍÉ ÓÉÎÔÁËÓÉÞÅÓËÉÍÉ DT>>>> ËÏÎÓÔÒÕËÃÉÑÍÉ. ÷ ÞÁÓÔÎÏÓÔÉ, ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÌÕÞÛÅ DT>>>> ÓÐÅÃÓÉÍ×ÏÌÁ: É ÐÏÔÏÍÕ ÞÔÏ ÉÚÂÙÔÏÞÎÏ, É ÐÏÔÏÍÕ ÞÔÏ ÌÕÞÛÅ DT>>>> ÞÉÔÁÅÔÓÑ.

AM>>> ïÂÏÓÎÕÊ. þÅÍ ÂïÌØÛÁÑ ÉÚÂÙÔÏÞÎÏÓÔØ ÌÕÞÛÅ ÍåÎØÛÅÊ?

DT>> ôÅÍ, ÞÔÏ ÚÁÝÉÝÁÅÔ ÏÔ ÛÕÍÁ. :)

DO> ïÔËÕÄÁ ÛÕÍ-ÔÏ?

ûÕÍ - ÏÎ ×ÅÚÄÅ. :) ïÐÅÞÁÔËÉ, ÎÁÐÒÉÍÅÒ. äÁ É ÐÒÉ ÞÔÅÎÉÉ ÐÒÏÇÒÁÍÍÙ ÎÅÄÏÓÔÁÔÏÞÎÁÑ ÉÚÂÙÔÏÞÎÏÓÔØ ÐÒÉ×ÏÄÉÔ Ë ÔÒÕÄÎÏÓÔÉ ÐÏÎÉÍÁÎÉÑ. ðÏÜÔÏÍÕ ÏÂÙÞÎÏ ÐÒÏÇÒÁÍÍÙ ÎÁ áÄÅ É ÄÁÖÅ ðÁÓËÁÌÅ ÞÉÔÁÀÔÓÑ ÌÅÇÞÅ, ÞÅÍ ÎÁ C, ÉÌÉ, ÏÓÏÂÅÎÎÏ, ìÉÓÐÅ. :)

DT>> ëÓÔÁÔÉ, ÎÅÔ ÌÉ Õ ÔÅÂÑ ËÒÁÓÉ×ÏÇÏ, ÈÏÒÏÛÏ ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÎÏÇÏ DT>> ÉÓÈÏÄÎÉËÁ âðæ ÎÁ C/C++?

DO> äÁ ÉÈ ÏÇÒÏÍÎÏÅ ËÏÌÉÞÅÓÔ×Ï × ÓÅÔÉ.

ó ÈÏÄÕ ÎÅ ÎÁۣÌ. á ÓÉÄÅÔØ ÞÁÓÁÍÉ × ÉÎÅÔÅ ÎÅÔ ×ÏÚÍÏÖÎÏÓÔÉ.

Dimmy.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required