WINAVR
Sep 05, 2005
Last reply: 21 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> либо они ненормальные? :-)))))
Либо и то и другое ,-)
- Подавляющее большинство сишников - "кульхацкеры".
Нет. Вы видимо не поняли мое отношение к асму.
"всё перелопачивать" - это как раз "по-ассемблерски". И модульность тут не причем - что написано в мнемониках, то и придется перелопатить, а если есть существенные отличия в архитектуре, то еще и алгоритмы надо перелопатить которые используют особенности архитектуры.
Вам того же могу посоветовать. А то вы рассуждаете как начинающий программист - "этот язык плохой потому что мне в нем пришлось долго разбираться с нюансами и походить по граблям" Я уже давно такое пережил ;) Чего и вам желаю ;)
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