WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 15 Oct 2005 12:54:29

+0400:

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

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

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

DT> Так чего бы не писаться. Я говорю, что _архитектура не DT> приспособлена_. Прямо адресуемой памяти 128 байт, под стек -

Для чего не приспособлена?

DT> ещё 128,

Ну да, мелкий кристалл с мелкими возможностями.

DT> а если "хочешь большего", то всё делается через DPTR, крайне неэффективно.

Причем на любом языке.

DT> Хорошо ещё, если их два. С другой стороны, например, битовые переменные: DT> удобная и эффективная вещь, но в C даже типа bool нет, чтобы их поддержать...

Для битовых переменных не нужен тип bool, но конкретно в C для i51 есть расширения для работы с битами.

DT> А на ассемблере можно извернуться. Особенно если проект несложный.

Тогда тем более писать на С, пусть он и изворачивается.

dima

formatting link

ðÒÉ×ÅÔ Ivan!

14 Oct 05 07:10, Ivan Melnikov ÐÉÓÁÌ Dmitry Orlov:

IM>>> úÁÍÅÎÁ ÏÄÎÏÊ ÍÎÅÍÏÎÉËÉ ÎÁ ÄÒÕÇÕÀ ÂÙ×ÁÅÔ ÐÏÌÅÚÎÏ, DO>> á ÂÙ×ÁÅÔ É ×ÒÅÄÎÏ. é ÐÏËÁ ×ÓÅ ÍÁËÒÏÓÙ ÎÅ ÒÁÚÂÅÒÅÛØ, ÎÅ ÐÏÎÑÔØ ÞÔÏ DO>> ÖÅ ÔÕÔ ÎÁÐÉÓÁÎÏ. IM> ôÁË ÔÙÖÅ ÓÁÍ ÐÉÛÅÛØ ÐÒÏÇÒÁÍÍÕ, ÔÁË ÞÔÏ ÔÅÂÅ ÍÏÖÅÔ ÂÙÔØ ÎÅ IM> ÐÏÎÑÔÎÏ.

HÅ ×ÓÅ ÐÒÏÇÒÁÍÍÉÓÔÙ - éþð Ó ÆÅÎÏÍÅÎÁÌØÎÏÊ ÐÁÍÑÔØÀ. :)

HÁ ÐÒÁËÔÉËÅ ÎÁÐÉÓÁÎÎÙÊ ÏÄÎÉÍ ÐÒÏÇÒÁÍÍÉÓÔÏÍ ËÏÄ ÄÅÓÑÔØ ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍÉÓÔÏ× ÍÏÇÕÔ ÐÒÉÍÅÎÑÔØ × ËÁËÉÈ-ÔÏ ÉÚÄÅÌÉÑÈ, Á ÚÁÔÅÍ ÚÁÎÉÍÁÔØÓÑ ÓÏÐÒÏ×ÏÖÄÅÎÉÅÍ É ÄÁÌØÎÅÊÛÉÍ ÒÁÚ×ÉÔÉÅÍ ÜÔÏÇÏ ËÏÄÁ.

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

15 Oct 05 09:53, Dimmy Timchenko ÐÉÓÁÌ Alex Mogilnikov:

DT>>> á ËÁË, ÉÎÔÅÒÅÓÎÏ, ÔÕÄÁ ÐÏÄÃÅÐÉÔØ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ Win32? AM>> ðÒÏÞÉÔÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ É ÓÄÅÌÁÔØ ËÁË ÔÁÍ ÎÁÐÉÓÁÎÏ. DT> èÍ, É ÏÔÌÁÄÞÉË ÒÁÂÏÔÁÔØ ÂÕÄÅÔ?

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

15 Oct 05 10:07, Dimmy Timchenko ÐÉÓÁÌ Igor Ulanov:

DT> åÓÔØ. èÏÔÑ, ÓËÏÒÅÅ, × C++. HÁÐÒÉÍÅÒ, ÏÂßÑ×ÌÅÎÉÅ ÐÅÒÅÍÅÎÎÙÈ × DT> ÐÒÏÉÚ×ÏÌØÎÏÍ ÍÅÓÔÅ. :)

ëÁË ÔÕÔ ÕÖÅ ÇÏ×ÏÒÉÌÉ, ÜÔÏ ÍÏÖÎÏ É × C.

DT> á ×ÏÔ ÐÁÓËÁÌÅ×ÓËÉÈ ÓÔÒÏË, ÏÐÅÒÁÔÏÒÁ with, ÄÉÁÐÁÚÏÎÏ×, set-Ï× Ñ×ÎÏ DT> ÎÅ È×ÁÔÁÅÔ.

þÔÏ ÔÁËÏÅ with Ñ ÎÅ ÚÎÁÀ, Á ÏÓÔÁÌØÎÏÅ ÍÏÖÎÏ × C++.

DT> óÉÎÔÁËÓÉÓ, ÏÐÑÔØ ÖÅ, ÍÅÓÔÁÍÉ ïþåHø ÎÅ×ÎÑÔÎÙÊ.

äÁ, C ÐÏÚ×ÏÌÑÅÔ ÐÉÓÁÔØ ÎÅ×ÎÑÔÎÏ. HÏ ÍÏÖÎÏ ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔØÀ ÎÅ ÐÏÌØÚÏ×ÁÔØÓÑ.

IU>> ïÄÎÁ ÉÚ ÎÉÈ ÜÔÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×.

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

ôÁË C ÎÅ ÚÁÐÒÅÝÁÅÔ ÔÅÂÅ ÜÔÏÇÏ ÄÅÌÁÔØ. ðÉÛÉ

short s = (short)0; long l = (long)s;

ôÏÌØËÏ ×Ï-ÐÅÒ×ÙÈ, ÞÅÍ ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ - ÔÅÍ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ ÓÄÅÌÁÔØ ÏÛÉÂËÕ. ÷Ï-×ÔÏÒÙÈ, ÎÅ ÐÏÎÉÍÁÀ, ÞÅÍ ÜÔÏ ÌÕÞÛÅ ÞÅÍ short s = 0;.

DT> "þÅÍ ÐÁÓËÁÌØ" - ×ÏÚÍÏÖÎÏ. HÏ ÌÕÞÛÅ ÂÙ ÅÇÏ, ÉÍÅÎÎÏ ÄÌÑ embedded, DT> ÓÌÅÇËÁ ÏÔÒÉÈÔÏ×ÁÔØ. HÁÐÒÉÍÅÒ, ÕÂÒÁÔØ integer propagation

HÁ×ÅÒÎÏÅ promotion. âÙÌÉ ÔÁËÉÅ ÐÏÐÙÔËÉ ÕÖÅ. HÅ ÐÏÍÎÀ ÞÔÏ ÂÙÌ ÚÁ ËÏÍÐÉÌÑÔÏÒ, ÎÏ × ÎÅÍ integer promotion ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÅ ×ÙÐÏÌÎÑÌÏÓØ, ÎÁÄÏ ÂÙÌÏ ×ËÌÀÞÁÔØ ËÁËÉÍ-ÔÏ ËÌÀÞÉËÏÍ. ôÅ, ËÔÏ ÜÔÕ ÔÏÎËÏÓÔØ × ÄÏËÅ ÐÒÏÍÏÒÇÁÌ, ÐÏÔÏÍ ÄÏÌÇÏ É ÇÒÑÚÎÏ ÒÕÇÁÌÉÓØ, ÚÁÔÅÍ ×ÙÓÔÁ×ÌÑÌÉ ËÌÀÞÉË "ÒÁÂÏÔÁÔØ ÐÏ ÓÔÁÎÄÁÒÔÕ". HÅ ÐÏÍÎÀ, ÞÔÏÂÙ ËÏÍÕ-ÔÏ ÜÔÁ ÆÉÞÁ ÐÏÎÒÁ×ÉÌÁÓØ, ÉÂÏ ×ÙÉÇÒÙÛÁ × ÒÁÚÍÅÒÅ ËÏÄÁ ÐÏÞÔÉ ÎÉÇÄÅ ÎÅ ÄÁ×ÁÌÁ, ÚÁÔÏ ÍÎÏÇÉÅ ÂÅÚÏÂÉÄÎÙÅ ÎÁ ÐÒÅ×ÙÊ ×ÚÇÌÑÄ ×ÙÒÁÖÅÎÉÑ ÎÁÞÉÎÁÌÉ ÄÁ×ÁÔØ ÏÔÌÉÞÎÙÊ ÏÔ ÏÖÉÄÁÅÍÏÇÏ ÒÅÚÕÌØÔÁÔ.

unsigned char a = 128; unsigned char b = 129; unsigned char c = 200; unsigned char d = c / (a + b);

úÁ ÓÞÅÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÏ× ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ d ÏÐÒÅÄÅÌÅÎÏ É ÒÁ×ÎÏ ÎÕÌÀ. òÁÚ×Å ÜÔÏ ÄÏÓÔÁ×ÌÑÅÔ ÎÅÕÄÏÂÓÔ×Ï? :)

DT> É ×ÏÏÂÝÅ Á×ÔÏÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×.

ðÉÛÉ short s = (short)0;. á ÐÒÉÓ×ÏÉÔØ ÐÅÒÅÍÅÎÎÏÊ ÏÄÎÏÇÏ ÔÉÐÁ ÚÎÁÞÅÎÉÅ ÄÒÕÇÏÇÏ ÔÉÐÁ ÂÅÚ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÁ ÎÅÌØÚÑ.

DT> äÏÂÁ×ÉÔØ ÏÐÅÒÁÔÏÒÙ ÃÉËÌÉÞÅÓËÏÇÏ ÓÄ×ÉÇÁ.

÷ C++ ÅÓÔØ ÐÅÒÅÇÒÕÚËÁ ÏÐÅÒÁÔÏÒÏ×, × C ÍÏÖÎÏ ÓÄÅÌÁÔØ ÆÕÎËÃÉÀ.

DT> äÏÂÁ×ÉÔØ ÂÉÂÌÉÏÔÅËÉ, ÐÏÌÅÚÎÙÅ ÉÍÅÎÎÏ ÄÌÑ ×ÓÔÒÏÅÎÎÙÈ ÐÒÉÌÏÖÅÎÉÊ.

íÎÅ ÏÔÓÕÔÓÔ×ÉÅ ÕÐÏÍÉÎÁÎÉÑ ÂÉÂÌÉÏÔÅËÉ × ÓÐÅÃÉÆÉËÁÃÉÉ ÑÚÙËÁ ÎÅ ÍÅÛÁÅÔ ÅÅ ÉÓÐÏÌØÚÏ×ÁÔØ. :)

DT> Dimmy.

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

13 Oct 05 , 18:20 Dimmy Timchenko ÐÉÓÁÌ Ë Vladimir Vassilevsky:

VV>> Watcom C++ 11.0. éÚ ÐÒÉÑÔÎÙÈ ×ÅÝÅÊ ÍÏÖÎÏ ÏÔÍÅÔÉÔØ ÐÏÄÄÅÒÖËÕ VV>> ÇÒÁÆÉËÉ Á-ÌÑ DOS × win32 ËÏÎÓÏÌØÎÙÈ ÐÒÉÌÏÖÅÎÉÑÈ.

DT> á, ÔÏÞÎÏ, ÇÒÏÍËÏÅ ÉÍÑ. ïÎ, ËÁÖÅÔÓÑ, Ó ÎÅËÏÔÏÒÙÈ ÐÏÒ ÂÅÓÐÌÁÔÎÙÊ?

áÇÁ. É ÎÁÚÙ×ÁÅÔÓÑ OpenWatcom. ÷ ÉÓÈÏÄÎÉËÉ ÌÕÞÛÅ ÎÅ ÓÍÏÔÒÅÔØ, ÉÂÏ ÔÁÍ ÕÖÏÓ Ó ËÕÞÅÊ void *doSomethink(void *param1, void *param2); É ÇÌÏÂÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... óÐÁÒÉ×ÁÎÉÅ ÜÌÅËÔÒÏÎÏ× ÐÏÄ ËÏÎÔÒÏÌÅÍ ÐÒÉÎÃÉÐÁ ðÁÕÌÉ

ðÒÉ×ÅÔ, Vladimir !

14 Oct 05 , 17:44 Vladimir Vassilevsky ÐÉÓÁÌ Ë Dimmy Timchenko:

DT>> ïÎ, ËÁÖÅÔÓÑ, Ó ÎÅËÏÔÏÒÙÈ ÐÏÒ ÂÅÓÐÌÁÔÎÙÊ?

VV> äÁ, ÏÔÄÁÅÔÓÑ ÎÁ

formatting link
é, ÞÔÏ ÐÒÉÑÔÎÏ, ÎÏÒÍÁÌØÎÙÊ VV> ÐÒÏÄÕËÔ Á ÎÅ ÐÏÄÅÌËÁ ÌÉÎÕËÓÁÎÕÔÙÈ.

ÇÍ. ÔÙ ÂÙ ×ÉÄÅÌ ÅÇÏ ÉÓÈÏÄÎÉËÉ É/ÉÌÉ ÐÏ×ÅÄÅÎÉÅ ÌÉÎËÅÒÁ × ÎÅÓÔÁÎÄÁÒÔÎÙÈ ÓÉÔÕÁÃÉÑÈ. äÁÖÅ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ×ÁÊÎ/ÄÏÓÜÍÕ/ÂÏÛ ÔÁÍ ËÏÄ ÎÅ×ÎÑÔÎÙÊ É ËÒÉ×ÏÊ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... òÁÚ×ÉÓÔÉ × ÁÄÎÏÊ ÐÉÎÔÅ ×ÁÄÙ, ÁÄÎÕ ËÁÐÌÀ ÉÍÕ × ÞÁÊ É ÎÉÐÒÉÍÅÎÎÁ ÎÁÄÅÔØ Ó×ÁÂÏÄÎÁÀ ÁÄÅÖÄÕ É ÉÝÏ ÛÔÏÂÙ ×Ù ÎÉ ÖÄÁÌÉ ÎÅËÁËÉÈ ÇÁÓÔÅÊ.

Hello Dmitry.

Sat Oct 15 2005 21:27, Dmitry Orlov wrote to me:

DT>> ôÁË ÞÅÇÏ ÂÙ ÎÅ ÐÉÓÁÔØÓÑ. ñ ÇÏ×ÏÒÀ, ÞÔÏ _ÁÒÈÉÔÅËÔÕÒÁ ÎÅ DT>> ÐÒÉÓÐÏÓÏÂÌÅÎÁ_. ðÒÑÍÏ ÁÄÒÅÓÕÅÍÏÊ ÐÁÍÑÔÉ 128 ÂÁÊÔ, ÐÏÄ ÓÔÅË -

DO> äÌÑ ÞÅÇÏ ÎÅ ÐÒÉÓÐÏÓÏÂÌÅÎÁ?

äÌÑ ÓÏÚÄÁÎÉÑ ÜÆÆÅËÔÉ×ÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× Ó ñ÷õ. ÷ÏÔ ÎÁ ÔÏÍ ÖÅ MSP430 IAR ËÏÍÐÉÌÉÔ ÔÁË, ËÁË Ñ ÂÙ ÓÁÍ ÎÁ ÁÓÓÅÍÂÌÅÒÅ ÎÁÐÉÓÁÌ, Á ÔÏ É ÜÆÆÅËÔÉ×ÎÅÅ. :) ðÏÔÏÍÕ ÞÔÏ ÅÍÕ ÓÔÒÕËÔÕÒÎÏÓÔØ-ÞÉÔÁÅÍÏÓÔØ ÓÏÈÒÁÎÑÔØ ÎÅ ÎÁÄÏ.

DT>> èÏÒÏÛÏ Åݣ, ÅÓÌÉ ÉÈ Ä×Á. ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÎÁÐÒÉÍÅÒ, ÂÉÔÏ×ÙÅ DT>> ÐÅÒÅÍÅÎÎÙÅ: ÕÄÏÂÎÁÑ É ÜÆÆÅËÔÉ×ÎÁÑ ×ÅÝØ, ÎÏ × C ÄÁÖÅ ÔÉÐÁ bool ÎÅÔ, DT>> ÞÔÏÂÙ ÉÈ ÐÏÄÄÅÒÖÁÔØ...

DO> äÌÑ ÂÉÔÏ×ÙÈ ÐÅÒÅÍÅÎÎÙÈ ÎÅ ÎÕÖÅÎ ÔÉÐ bool, ÎÏ ËÏÎËÒÅÔÎÏ × C ÄÌÑ i51 ÅÓÔØ DO> ÒÁÓÛÉÒÅÎÉÑ ÄÌÑ ÒÁÂÏÔÙ Ó ÂÉÔÁÍÉ.

âÉÔÏ×ÙÅ ÐÅÒÅÍÅÎÎÙÅ - ÜÔÏ ÜÆÆÅËÔÉ×ÎÁÑ ÒÅÁÌÉÚÁÃÉÑ ÉÍÅÎÎÏ ÁÂÓÔÒÁËÃÉÉ ÂÕÌÅ×ÙÈ ÞÉÓÅÌ. é × 51-Í ÜÔÁ ÒÅÁÌÉÚÁÃÉÑ ÏÞÅÎØ ÕÄÁÞÎÁÑ. åÄÉÎÓÔ×ÅÎÎÏÅ, ÞÅÇÏ ÎÅ È×ÁÔÁÌÏ - ÜÔÏ xor Ä×ÕÈ ÂÉÔ.

HÏ ÅÓÌÉ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ, ÅÓÔØ ÞÔÏ-ÔÏ ×ÒÏÄÅ ×ÓÔÒÏÅÎÎÏÇÏ ÔÉÐÁ bit, ÔÏ ÜÔÏ ÔÏÖÅ ÎÅÐÌÏÈÏ.

DT>> á ÎÁ ÁÓÓÅÍÂÌÅÒÅ ÍÏÖÎÏ ÉÚ×ÅÒÎÕÔØÓÑ. ïÓÏÂÅÎÎÏ ÅÓÌÉ ÐÒÏÅËÔ ÎÅÓÌÏÖÎÙÊ.

DO> ôÏÇÄÁ ÔÅÍ ÂÏÌÅÅ ÐÉÓÁÔØ ÎÁ ó, ÐÕÓÔØ ÏÎ É ÉÚ×ÏÒÁÞÉ×ÁÅÔÓÑ.

ôÏÇÄÁ ÐÏÞÅÍÕ ÎÅ ×ÚÑÔØ ÂÏÌÅÅ ÕÍÅÓÔÎÙÊ ËÒÉÓÔÁÌÌ? óÅÊÞÁÓ ÉÈ ÍÁÓÓÁ, ÐÏÄÈÏÄÑÝÉÈ ÐÏ ÌÀÂÙÍ ÐÁÒÁÍÅÔÒÁÍ. ôÅ ÖÅ AVR-Ù, ÐÒÉ ×ÓÅÊ ÉÈ ËÒÉ×Ï×ÁÔÏÓÔÉ :), ÐÏÄ C ÚÁÔÏÞÅÎÙ ÎÅÐÌÏÈÏ.

Dimmy.

Hello Alex.

Sun Oct 16 2005 00:38, Alex Mogilnikov wrote to me:

DT>>>> á ËÁË, ÉÎÔÅÒÅÓÎÏ, ÔÕÄÁ ÐÏÄÃÅÐÉÔØ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ Win32? AM>>> ðÒÏÞÉÔÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ É ÓÄÅÌÁÔØ ËÁË ÔÁÍ ÎÁÐÉÓÁÎÏ. DT>> èÍ, É ÏÔÌÁÄÞÉË ÒÁÂÏÔÁÔØ ÂÕÄÅÔ?

AM> åÓÌÉ ÔÙ ÐÒÏÐÉÛÅÛØ ÎÁ ËÁËÕÀ-ÔÏ ËÏÍÂÉÎÁÃÉÀ ËÌÁ×ÉÛ ÚÁÐÕÓË ÏÔÌÁÄÞÉËÁ, ÎÅ AM> ×ÉÖÕ ÐÒÉÞÉÎÙ, ÐÏÞÅÍÕ ÏÎ ÎÅ ÓÔÁÎÅÔ ÒÁÂÏÔÁÔØ.

äÌÑ ÍÅÎÑ × ÐÏÎÑÔÉÅ "IDE" ×ÈÏÄÉÔ É ÏÔÌÁÄÞÉË ÓÏ ×ÓÅÍÉ ÆÉÞÁÍÉ. é, ×ÏÏÂÝÅ ÇÏ×ÏÒÑ, ÒÅÄÁËÔÏÒ, ÚÁÔÏÞÅÎÎÙÊ ÐÏÄ ÑÚÙË É Ó ËÏÎÔÅËÓÔÎÙÍ ÈÅÌÐÏÍ. ÷ ÜÔÏÍ ÓÍÙÓÌÅ ÉÓËÌÀÞÉÔÅÌØÎÏ ÕÄÁÞÎÙÍ ÄÌÑ Ó×ÏÅÇÏ ×ÒÅÍÅÎÉ ÂÙÌ BP7. HÁÐÒÉÍÅÒ, ÂÙÌÁ ÔÁÍ ÕÄÏÂÎÅÊÛÁÑ ÆÉÞÁ: object browser, ËÏÔÏÒÙÊ ÐÏËÁÚÙ×ÁÌ ÏÐÒÅÄÅÌÅÎÉÅ É ×ÓÅ ×ÙÚÏ×Ù ËÁËÏÊ-ÎÉÂÕÄØ ÐÅÒÅÍÅÎÎÏÊ ÉÌÉ ÆÕÎËÃÉÉ.

Dimmy.

Hello Alex.

Sun Oct 16 2005 00:47, Alex Mogilnikov wrote to me:

DT>> åÓÔØ. èÏÔÑ, ÓËÏÒÅÅ, × C++. HÁÐÒÉÍÅÒ, ÏÂßÑ×ÌÅÎÉÅ ÐÅÒÅÍÅÎÎÙÈ × DT>> ÐÒÏÉÚ×ÏÌØÎÏÍ ÍÅÓÔÅ. :)

AM> ëÁË ÔÕÔ ÕÖÅ ÇÏ×ÏÒÉÌÉ, ÜÔÏ ÍÏÖÎÏ É × C.

úÁ ÉÓËÌÀÞÅÎÉÅÍ ÐÁÒÁÍÅÔÒÁ ÃÉËÌÁ. ðÒÉģÔÓÑ ÏËÒÕÖÁÔØ for ÓËÏÂËÁÍÉ É ÏÂßÑ×ÌÑÔØ ÐÁÒÁÍÅÔÒ ÐÅÒÅÄ ÏÐÅÒÁÔÏÒÏÍ, ÞÔÏ ÚÁÈÌÁÍÌÑÅÔ ÔÅËÓÔ É ÓÎÉÖÁÅÔ ÞÉÔÁÅÍÏÓÔØ.

DT>> á ×ÏÔ ÐÁÓËÁÌÅ×ÓËÉÈ ÓÔÒÏË, ÏÐÅÒÁÔÏÒÁ with, ÄÉÁÐÁÚÏÎÏ×, set-Ï× Ñ×ÎÏ ÎÅ DT>> È×ÁÔÁÅÔ.

AM> þÔÏ ÔÁËÏÅ with Ñ ÎÅ ÚÎÁÀ,

á! úÒÑ ÎÅ ÚÎÁÅÛØ. :) üÔÏ ÚÁÄÁÎÉÅ ËÏÎÔÅËÓÔÁ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÓÔÒÕËÔÕÒ (× ÐÁÓËÁÌÅ ÏÎÉ ÎÁÚÙ×ÁÀÔÓÑ records):

type acc = record coeff : integer; Q1, Q2 : longint; end;

var acc_table : array [1..NUM_FREQ] of acc;

...

for i := 1 to NFREQ do _with acc_table[i] do_ begin Q0 := Q1 * coeff - Q2 + sample; Q2 := Q1; Q1 := Q0; end;

AM> Á ÏÓÔÁÌØÎÏÅ ÍÏÖÎÏ × C++.

íÏÖÎÏ, ÎÏ ÏÎÏ ÎÅ ÉÎÔÅÇÒÉÒÏ×ÁÎÏ × ÑÚÙË. HÁÐÒÉÍÅÒ, × ÐÁÓËÁÌÅ ÒÁÚÍÅÒÎÏÓÔÉ ÍÁÓÓÉ×Ï× ÚÁÄÁÀÔÓÑ ÄÉÁÐÁÚÏÎÁÍÉ, "ÓÍÅÓØ" ÄÉÁÐÁÚÏÎÏ× É ÐÅÒÅÞÉÓÌÅÎÉÊ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ÏÐÅÒÁÔÏÒÅ ×ÙÂÏÒÁ:

case c of

'A'..'Z': Proc1(c); '0'..'9','.',':': Proc2(c);

default Proc3(c); end;

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

for c in SomeString do ...

óÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ ÓËÁÎÉÒÕÅÔÓÑ ÐÏÓÉÍ×ÏÌØÎÏ.

DT>> óÉÎÔÁËÓÉÓ, ÏÐÑÔØ ÖÅ, ÍÅÓÔÁÍÉ ïþåHø ÎÅ×ÎÑÔÎÙÊ.

AM> äÁ, C ÐÏÚ×ÏÌÑÅÔ ÐÉÓÁÔØ ÎÅ×ÎÑÔÎÏ. HÏ ÍÏÖÎÏ ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔØÀ ÎÅ AM> ÐÏÌØÚÏ×ÁÔØÓÑ.

ðÏÐÒÏÂÕÊ ×ÎÑÔÎÏ ÎÁÐÉÓÁÔØ ÄÅËÌÁÒÁÃÉÀ/ÄÅÆÉÎÉÃÉÀ ÞÅÇÏ-ÎÉÂÕÄØ, ÓÏÄÅÒÖÁÝÅÇÏ ÕËÁÚÁÔÅÌÉ. äÌÑ ÜÔÏÇÏ ÄÁÖÅ ÓÐÅÃÉÁÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ ÐÒÉÄÕÍÁÌÉ, cdecl É cundecl. :) é C++ ÜÔÕ ÔÒÁÄÉÃÉÀ ÐÒÏÄÏÌÖÉÌ, ÎÁÐÒÉÍÅÒ, × ÓÉÎÔÁËÓÉÓÅ ÔÅÍÐÌÅÊÔÏ×.

IU>>> ïÄÎÁ ÉÚ ÎÉÈ ÜÔÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×.

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

AM> ôÁË C ÎÅ ÚÁÐÒÅÝÁÅÔ ÔÅÂÅ ÜÔÏÇÏ ÄÅÌÁÔØ. ðÉÛÉ

AM> short s = (short)0; AM> long l = (long)s;

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

AM> ôÏÌØËÏ ×Ï-ÐÅÒ×ÙÈ, ÞÅÍ ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ - ÔÅÍ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ AM> ÓÄÅÌÁÔØ ÏÛÉÂËÕ.

ôÉÐÉÞÎÏÅ ÚÁÂÌÕÖÄÅÎÉÅ ÓÉÏÎÉÓÔÏ×. ;) þÅÍ ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ - ÔÅÍ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ Õ ËÏÍÐÉÌÑÔÏÒÁ _ÏÔÌÏ×ÉÔØ_ ÏÛÉÂËÕ. ñÚÙË ÏÂÑÚÁÎ ÂÙÔØ ÉÚÂÙÔÏÞÎÙÍ, É ÒÁÚÎÁÑ ÓÅÍÁÎÔÉËÁ ÏÂÑÚÁÎÁ ×ÙÒÁÖÁÔØÓÑ ÒÁÚÎÙÍÉ, ÎÅÐÏÈÏÖÉÍÉ ÓÉÎÔÁËÓÉÞÅÓËÉÍÉ ËÏÎÓÔÒÕËÃÉÑÍÉ. ÷ ÞÁÓÔÎÏÓÔÉ, ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÌÕÞÛÅ ÓÐÅÃÓÉÍ×ÏÌÁ: É ÐÏÔÏÍÕ ÞÔÏ ÉÚÂÙÔÏÞÎÏ, É ÐÏÔÏÍÕ ÞÔÏ ÌÕÞÛÅ ÞÉÔÁÅÔÓÑ. úÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÒÁÄÉÃÉÏÎÎÙÈ ÁÒÉÆÍÅÔÉÞÅÓËÉÈ ×ÙÒÁÖÅÎÉÊ, ËÏÎÅÞÎÏ.

AM> ÷Ï-×ÔÏÒÙÈ, ÎÅ ÐÏÎÉÍÁÀ, ÞÅÍ ÜÔÏ ÌÕÞÛÅ ÞÅÍ short s = 0;.

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

DT>> "þÅÍ ÐÁÓËÁÌØ" - ×ÏÚÍÏÖÎÏ. HÏ ÌÕÞÛÅ ÂÙ ÅÇÏ, ÉÍÅÎÎÏ ÄÌÑ embedded, DT>> ÓÌÅÇËÁ ÏÔÒÉÈÔÏ×ÁÔØ. HÁÐÒÉÍÅÒ, ÕÂÒÁÔØ integer propagation

AM> HÁ×ÅÒÎÏÅ promotion. âÙÌÉ ÔÁËÉÅ ÐÏÐÙÔËÉ ÕÖÅ. HÅ ÐÏÍÎÀ ÞÔÏ ÂÙÌ ÚÁ AM> ËÏÍÐÉÌÑÔÏÒ, ÎÏ × ÎÅÍ integer promotion ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÅ ×ÙÐÏÌÎÑÌÏÓØ, ÎÁÄÏ AM> ÂÙÌÏ ×ËÌÀÞÁÔØ ËÁËÉÍ-ÔÏ ËÌÀÞÉËÏÍ. ôÅ, ËÔÏ ÜÔÕ ÔÏÎËÏÓÔØ × ÄÏËÅ ÐÒÏÍÏÒÇÁÌ, AM> ÐÏÔÏÍ ÄÏÌÇÏ É ÇÒÑÚÎÏ ÒÕÇÁÌÉÓØ, ÚÁÔÅÍ ×ÙÓÔÁ×ÌÑÌÉ ËÌÀÞÉË "ÒÁÂÏÔÁÔØ ÐÏ AM> ÓÔÁÎÄÁÒÔÕ".

ôÁË ÐÒÉ×ÙËÌÉ ÐÏÔÏÍÕ ÞÔÏ... ÄÁ É ÓÏ×ÍÅÓÔÉÍÏÓÔØ Ó ÕÖÅ ÎÁÐÉÓÁÎÎÙÍ ËÏÄÏÍ.

DT>> É ×ÏÏÂÝÅ Á×ÔÏÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×.

AM> ðÉÛÉ short s = (short)0;. á ÐÒÉÓ×ÏÉÔØ ÐÅÒÅÍÅÎÎÏÊ ÏÄÎÏÇÏ ÔÉÐÁ ÚÎÁÞÅÎÉÅ AM> ÄÒÕÇÏÇÏ ÔÉÐÁ ÂÅÚ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÁ ÎÅÌØÚÑ.

ðÒÁ×ÉÌØÎÏ, É ÏÎÏ ÄÏÌÖÎÏ ÄÅÌÁÔØÓÑ Ñ×ÎÏ. ëÁË × áÄÅ. :)

DT>> äÏÂÁ×ÉÔØ ÂÉÂÌÉÏÔÅËÉ, ÐÏÌÅÚÎÙÅ ÉÍÅÎÎÏ ÄÌÑ ×ÓÔÒÏÅÎÎÙÈ ÐÒÉÌÏÖÅÎÉÊ.

AM> íÎÅ ÏÔÓÕÔÓÔ×ÉÅ ÕÐÏÍÉÎÁÎÉÑ ÂÉÂÌÉÏÔÅËÉ × ÓÐÅÃÉÆÉËÁÃÉÉ ÑÚÙËÁ ÎÅ ÍÅÛÁÅÔ ÅÅ AM> ÉÓÐÏÌØÚÏ×ÁÔØ. :)

ëÓÔÁÔÉ, ÅÓÌÉ ÐÏÄËÉÎÅÛØ ÓÓÙÌËÉ ÎÁ ÐÏÌÅÚÎÙÅ ÄÌÑ embedded ÂÉÂÌÉÏÔÅËÉ, ÂÕÄÕ ÏÞÅÎØ ÂÌÁÇÏÄÁÒÅÎ.

Dimmy.

Dimmy, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÕÂÂÏÔÁ ïËÔÑÂÒØ 15 2005 13:00, Dimmy Timchenko wrote to George Shepelev:

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

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

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

HÏ É ÎÅ ÒÁÚÄÕ×ÁÔØ ÎÅÐÒÉÎÃÉÐÉÁÌØÎÙÅ ×ÅÝÉ × ÆÁÎÁÔÉÞÅÓËÉÅ ÌÏÚÕÎÇÉ. ÷ÏÎ, Õ PIC'Ï× ×ÏÏÂÝÅ ÔÏÌØËÏ Ó ÎÏÖÅË ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÏ× ÞÉÔÁÅÔÓÑ, É ÎÉÞÅÇÏ, ÎÁÒÏÄ ÎÅ ÖÁÌÕÅÔÓÑ.

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

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

GS>> á ×ÏÔ ÅÓÌÉ ÓÈÅÍÁ ÒÁÚÒÁÂÏÔÁÎÁ ÎÅÐÒÁ×ÉÌØÎÏ - ÇÌÀËÉ ÂÕÄÕÔ × ÌÀÂÏÍ GS>> ÓÌÕÞÁÅ É ÉÈ ÐÒÉģÔÓÑ ÏÔÌÁ×ÌÉ×ÁÔØ. á ÎÅ ÐÙÔÁÔØÓÑ ÚÁÍÁÓËÉÒÏ×ÁÔØ GS>> ÇÌÀËÉ ÐÒÏÇÒÁÍÍÎÙÍÉ ÕÈÉÝÒÅÎÉÑÍÉ... DT> çÅÏÒÇÉÊ, ÔÙ, ÉÚ×ÉÎÉ, ÐÅÒÅģÒÇÉ×ÁÅÛØ. ÷ ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÞÔÅÎÉÅ ÉÚ ÂÕÆÅÒÁ DT> - ÎÅ ÕÈÉÝÒÅÎÉÅ, Á ÓÏ×ÅÒÛÅÎÎÏ ÐÒÁ×ÉÌØÎÙÊ, ÎÁģÖÎÙÊ ÓÐÏÓÏÂ.

óËÁÖÅÍ ÔÁË, ÂÏÌÅÅ ÒÁÚÕÍÎÙÊ. HÅ ÓÐÏÒÀ. HÏ ÎÅ ÏÂÑÚÁÔÅÌØÎÙÊ. ðÏÓÅÍÕ Ñ ÎÅ ÓÔÁÌ "ÒÉÈÔÏ×ÁÔØ" ËÏÄ × ÎÅÐÒÉÎÃÉÐÉÁÌØÎÏÍ ÍÅÓÔÅ (ÈÏÔÑ × Ó×ϣÍ ×ÒÑÄ-ÌÉ ÂÙ ÔÁË ÄÅÌÁÌ). HÕ, ×ÙÒÏÂÏÔÁÎ Õ ÍÅÎÑ ÕÖÅ Ó×ÏÊ ÐÏÄÈÏÄ Ë ÒÉÈÔÏ×ËÅ ÞÕÖÏÇÏ ËÏÄÁ, ÏÄÉÎ ÉÚ ÐÒÉÎÃÉÐÏ× ÐÒÉ ÜÔÏÍ - ËÁË ÍÏÖÎÏ ÍÅÎØÛÅ ÉÚÍÅÎÅÎÉÊ. éÎÏÇÄÁ ÏËÁÚÙ×ÁÅÔÓÑ ÏÞÅÎØ ËÒÉÔÉÞÎÙÍ, ÉÂÏ ÔÙ ÎÅ ÚÎÁÅÛØ ×ÓÅÇÏ, ÞÔÏ ÍÏÇ ÐÒÅÄÕÓÍÏÔÒÅÔØ Á×ÔÏÒ.

DT> á ×ÏÔ ÞÔÅÎÉÅ Ó ÎÏÖÅË - ÓÏÍÎÉÔÅÌØÎÙÊ.

ôÏÌØËÏ ÅÓÌÉ ÒÁÚÒÁÂÏÔÞÉË ÁÐÐÁÒÁÔÎÏÊ ÞÁÓÔÉ ÏÂÌÁÄÁÅÔ ÓÏÍÎÉÔÅÌØÎÙÍÉ ÕÍÅÎÉÑÍÉ ;)

çÅÏÒÇÉÊ

Dimmy, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÕÂÂÏÔÁ ïËÔÑÂÒØ 15 2005 16:42, Dimmy Timchenko wrote to George Shepelev:

DT>>> ö-ÖÕÔØ. HÅÕÖÅÌÉ ÎÅÌØÚÑ ÂÙÌÏ ÄÒÕÇÕÀ ÚÁËÏÒÀÞËÕ ÄÌÑ ÄÅÓÔÒÕËÔÏÒÁ DT>>> ÐÒÉÄÕÍÁÔØ? GS>> HÅÌØÚÑ! ðÏ ÌÏÇÉËÅ Á×ÔÏÒÏ× ÞÅÍ ÍÅÎØÛÅ ËÎÏÐÏË - ÔÅÍ ÕÄÏÂÎÅÅ (ÎÁÊÔÉ GS>> ÎÕÖÎÕÀ ÚÁËÏÒÀÞËÕ ÐÒÏÝÅ). DT> ôÁË ×ÅÄØ C++ Ó ÎÅÓËÏÌØËÏ ÄÒÕÇÉÍÉ ÍÏÔÉ×ÁÃÉÑÍÉ ÓÏÚÄÁ×ÁÌÓÑ...

õ×Ù, × ÜÔÏÊ ÍÏÔÉ×ÁÃÉÉ ÐÒÉÓÕÔÓÔ×Ï×ÁÌÁ ÉÄÅÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó ÓÑÍÉ, ÓÏ ×ÓÅÍÉ ×ÙÔÅËÁÀÝÉÍÉ. ðÏÍÅÎØÛÅ ËÎÏÐÏË, ÐÏËÏÍÐÁËÔÎÅÊ ÚÁÐÉÓØ...

çÅÏÒÇÉÊ

ðÒÉ×ÅÔ Dimmy!

16 Oct 05 06:44, Dimmy Timchenko ÐÉÓÁÌ Alex Mogilnikov:

DT> äÌÑ ÍÅÎÑ × ÐÏÎÑÔÉÅ "IDE" ×ÈÏÄÉÔ É ÏÔÌÁÄÞÉË ÓÏ ×ÓÅÍÉ ÆÉÞÁÍÉ.

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

DT> é, ×ÏÏÂÝÅ ÇÏ×ÏÒÑ, ÒÅÄÁËÔÏÒ, ÚÁÔÏÞÅÎÎÙÊ ÐÏÄ ÑÚÙË É Ó ËÏÎÔÅËÓÔÎÙÍ DT> ÈÅÌÐÏÍ. ÷ ÜÔÏÍ DT> ÓÍÙÓÌÅ ÉÓËÌÀÞÉÔÅÌØÎÏ ÕÄÁÞÎÙÍ ÄÌÑ Ó×ÏÅÇÏ ×ÒÅÍÅÎÉ ÂÙÌ BP7. HÁÐÒÉÍÅÒ, DT> ÂÙÌÁ ÔÁÍ ÕÄÏÂÎÅÊÛÁÑ ÆÉÞÁ: object browser, ËÏÔÏÒÙÊ ÐÏËÁÚÙ×ÁÌ DT> ÏÐÒÅÄÅÌÅÎÉÅ É ×ÓÅ ×ÙÚÏ×Ù ËÁËÏÊ-ÎÉÂÕÄØ ÐÅÒÅÍÅÎÎÏÊ ÉÌÉ ÆÕÎËÃÉÉ.

ìÉÞÎÏ Ñ ÍÏÇÕ ÐÏÒÅËÏÍÅÎÄÏ×ÁÔØ vim
formatting link
ÎÏ ÎÁ IAR ÏÎ ÍÁÌÏ ÐÏÈÏÖ. á ÐÏ ÐÏ×ÏÄÕ ÏÔÌÁÄÞÉËÁ Ó ËÏÍÐÉÌÑÔÏÒÏÍ - gdb É gcc. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ëÒÙÓËÁÓ. ðÏÔÏÍÕ ÞÔÏ ËÒÙÓÁ ×ÁÍ ÄÏ×ÅÒÑÅÔ.

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Alex Mogilnikov on Sun, 16 Oct 2005 05:46:53

+0400:

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

Ну в Паскале такого тоже нет...

DT>>> А вот паскалевских строк, оператора with, диапазонов, set-ов DT>>> явно не хватает.

AM>> Что такое with я не знаю,

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

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

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

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

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

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

Сеты тянут за собой некислый такой код из RTL. И сами переменные тоже по 32 байта. На мелкой восьмиразрядной однокристаллке не разгонишься реализовывать.

DT> добавили ещё удобную фичу: использование in в операторе for DT> таким образом:

DT> for c in SomeString do ...

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

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

DT>>> Синтаксис, опять же, местами ОЧЕHЬ невнятный.

AM>> Да, C позволяет писать невнятно. Hо можно этой возможностью AM>> не пользоваться.

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

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

AM>> Так C не запрещает тебе этого делать. Пиши

AM>> short s = (short)0; AM>> long l = (long)s;

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

Пишешь

short s; char a, b;

s = (short)a+b;

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

dima

formatting link

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 16 Oct 2005 05:37:00

+0400:

DT>>> Так чего бы не писаться. Я говорю, что _архитектура не DT>>> приспособлена_. Прямо адресуемой памяти 128 байт, под стек DT>>> -

DO>> Для чего не приспособлена?

DT> Для создания эффективных компиляторов с ЯВУ. Вот на том же

Вполне приличные компиляторы созданы.

DT> MSP430 IAR компилит так, как я бы сам на ассемблере написал, а

Для i51 - тоже самое. Если конечно не писать на С вещи, которые на этой архитектуре реализуются громоздко (например вызов функции по указателю).

DT> то и эффективнее. :) Потому что ему структурность-читаемость DT> сохранять не надо.

Именно. Только какая тут связь с архитектурой?

DT>>> Хорошо ещё, если их два. С другой стороны, например, DT>>> битовые переменные: удобная и эффективная вещь, но в C даже DT>>> типа bool нет, чтобы их поддержать...

DO>> Для битовых переменных не нужен тип bool, но конкретно в C DO>> для i51 есть расширения для работы с битами.

DT> Битовые переменные - это эффективная реализация именно DT> абстракции булевых чисел.

Да нет, это прямого отношения к манипуляции битами портов/памяти не имеет.

DT> И в 51-м эта реализация очень удачная. Единственное, чего не хватало - DT> это xor двух бит.

DT> Hо если, действительно, есть что-то вроде встроенного типа DT> bit, то это тоже неплохо.

Есть, там есть форма porta.5, подробности я уже не помню, так как уже много лет с i51 не работаю.

DT>>> А на ассемблере можно извернуться. Особенно если проект DT>>> несложный.

DO>> Тогда тем более писать на С, пусть он и изворачивается.

DT> Тогда почему не взять более уместный кристалл?

Выбор кристалла - дело совсем другое. Последний раз мы выбрали 51 кристалл по желанию заказчика. Сами мы PIC'и применяем, они куда приятнее по своим возможностям.

DT> Сейчас их масса, подходящих по любым параметрам. Те же AVR-ы, при всей DT> их кривоватости :), под C заточены неплохо.

Да по-фигу как оно под С заточено. Мы неоднократно прицеливались на AVR и неоднократно от Микрочипа получали больше или дешевле. Аналоги тех же pic16f73,

16f819, 16f88, 12f675 у Атмела есть, но они дороже. Да, у них может быть при этом больше памяти, но на кой она мне нужна,если я влажу в имеющуюся? Кроме того, что куда важней, с PIC'ами есть опыт их применения в тяжелейших помеховых условиях. Набирать его с атмеловскими кристаллами (даже если предположить что у них с этим не хуже, хотя есть обратные данные) - это лишие расходы и лишняя работа ради весьма призрачных преимуществ.

dima

formatting link

Hello Alex.

Sun Oct 16 2005 15:30, Alex Mogilnikov wrote to me:

DT>> äÌÑ ÍÅÎÑ × ÐÏÎÑÔÉÅ "IDE" ×ÈÏÄÉÔ É ÏÔÌÁÄÞÉË ÓÏ ×ÓÅÍÉ ÆÉÞÁÍÉ.

AM> ÷ÏÏÂÝÅ-ÔÏ ÏÔÌÁÄÞÉË, ËÁË Ñ ÐÏÎÉÍÁÀ, ÄÏÌÖÅÎ ÂÙÔØ Ó×ÏÊ ÄÌÑ ËÁÖÄÏÇÏ AM> ÐÒÏÃÅÓÓÏÒÁ (ÓÅÍÅÊÓÔ×Á ÐÒÏÃÅÓÓÏÒÏ×). ðÏÜÔÏÍÕ ÉÓÁÔØ IDE ÓÒÁÚÕ Ó AM> ÏÔÌÁÄÞÉËÏÍ "ÐÏÄ ×ÓÅ" ÍÏÖÎÏ ÏÞÅÎØ ÄÏÌÇÏ... :)

÷ÏÏÂÝÅ-ÔÏ Ñ ÇÏ×ÏÒÉÌ Ï Win32, Á ÎÅ ÏÂÏ "×ӣÍ". :)

DT>> é, ×ÏÏÂÝÅ ÇÏ×ÏÒÑ, ÒÅÄÁËÔÏÒ, ÚÁÔÏÞÅÎÎÙÊ ÐÏÄ ÑÚÙË É Ó ËÏÎÔÅËÓÔÎÙÍ DT>> ÈÅÌÐÏÍ. ÷ ÜÔÏÍ ÓÍÙÓÌÅ ÉÓËÌÀÞÉÔÅÌØÎÏ ÕÄÁÞÎÙÍ ÄÌÑ Ó×ÏÅÇÏ ×ÒÅÍÅÎÉ ÂÙÌ DT>> BP7.

[skip]

AM> ìÉÞÎÏ Ñ ÍÏÇÕ ÐÏÒÅËÏÍÅÎÄÏ×ÁÔØ vim

formatting link
ÎÏ ÎÁ IAR ÏÎ AM> ÍÁÌÏ ÐÏÈÏÖ. á ÐÏ ÐÏ×ÏÄÕ ÏÔÌÁÄÞÉËÁ Ó ËÏÍÐÉÌÑÔÏÒÏÍ - gdb É gcc.

üÔÏ ÓÌÉÛËÏÍ ÜËÓÔÒÅÍÁÌØÎÏ ÄÌÑ ÍÅÎÑ. ;)

Dimmy.

Hello Dmitry.

Sun Oct 16 2005 15:32, Dmitry Orlov wrote to me:

DT>> úÁ ÉÓËÌÀÞÅÎÉÅÍ ÐÁÒÁÍÅÔÒÁ ÃÉËÌÁ. ðÒÉģÔÓÑ ÏËÒÕÖÁÔØ for ÓËÏÂËÁÍÉ É DT>> ÏÂßÑ×ÌÑÔØ ÐÁÒÁÍÅÔÒ ÐÅÒÅÄ ÏÐÅÒÁÔÏÒÏÍ, ÞÔÏ ÚÁÈÌÁÍÌÑÅÔ ÔÅËÓÔ É ÓÎÉÖÁÅÔ DT>> ÞÉÔÁÅÍÏÓÔØ.

DO> HÕ × ðÁÓËÁÌÅ ÔÁËÏÇÏ ÔÏÖÅ ÎÅÔ...

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

DT>> á! úÒÑ ÎÅ ÚÎÁÅÛØ. :) üÔÏ ÚÁÄÁÎÉÅ ËÏÎÔÅËÓÔÁ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ DT>> ÓÔÒÕËÔÕÒ (× ÐÁÓËÁÌÅ ÏÎÉ ÎÁÚÙ×ÁÀÔÓÑ records):

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

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

AM>>> Á ÏÓÔÁÌØÎÏÅ ÍÏÖÎÏ × C++.

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

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

ðÏÞÅÍÕ? õÄÏÂÎÅÅ É ÕÎÉ×ÅÒÓÁÌØÎÅÅ, ÞÅÍ × C. äÁ É ÕÐÏÍÑÎÕÔÙÊ ÏÐÅÒÁÔÏÒ ×ÙÂÏÒÁ ÔÏÖÅ ÂÏÌÅÅ ÐÒÁ×ÉÌØÎÙÊ.

DT>> äÌÑ ÓÅÔÏ× ÅÓÔØ ÓÐÅÃÉÁÌØÎÙÊ ÏÐÅÒÁÔÏÒ in. ëÓÔÁÔÉ, × ÄÅÌØÆÉ

DO> óÅÔÙ ÔÑÎÕÔ ÚÁ ÓÏÂÏÊ ÎÅËÉÓÌÙÊ ÔÁËÏÊ ËÏÄ ÉÚ RTL.

äÁ ÎÕ, ÅÒÕÎÄÁ. æÁËÔÉÞÅÓËÉ ÏÐÅÒÁÃÉÉ Ó ÎÉÍÉ Ó×ÏÄÑÔÓÑ Ë ÐÏÂÉÔÏ×ÙÍ and, or, xor, and-not.

DO> é ÓÁÍÉ ÐÅÒÅÍÅÎÎÙÅ ÔÏÖÅ ÐÏ 32 ÂÁÊÔÁ.

...ÍÁËÓÉÍÕÍ. :) ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÁÚÍÅÒÏ× ÂÁÚÏ×ÏÇÏ ÔÉÐÁ. åÓÌÉ ÔÙ ÏÂßÑ×ÉÛØ

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

ÔÏ SizeOf(DigSet) ÂÕÄÅÔ ÒÁ×ÎÏ 2-Í.

DT>> for c in SomeString do ...

DO> äÅÌØÆÉ - ×ÏÏÂÝÅ ×ÅÓØÍÁ ÜËÌÅËÔÉÞÎÁÑ ×ÅÝØ...

üÔÏ ÄÁ. HÏ É C++ - ÔÏÖÅ. :) ÷ ÏÔÌÉÞÉÅ ÏÔ ×ÅÓØÍÁ ÏÒÔÏÇÏÎÁÌØÎÏÊ É ÓÉÍÍÅÔÒÉÞÎÏÊ áÄÙ.

DT>> ðÏÐÒÏÂÕÊ ×ÎÑÔÎÏ ÎÁÐÉÓÁÔØ ÄÅËÌÁÒÁÃÉÀ/ÄÅÆÉÎÉÃÉÀ ÞÅÇÏ-ÎÉÂÕÄØ, DT>> ÓÏÄÅÒÖÁÝÅÇÏ ÕËÁÚÁÔÅÌÉ. äÌÑ ÜÔÏÇÏ ÄÁÖÅ ÓÐÅÃÉÁÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ DT>> ÐÒÉÄÕÍÁÌÉ, cdecl É cundecl. :)

DO> HÁ ÐÁÓËÁÌÅ ÐÏÄÏÂÎÏÊ ÓÌÏÖÎÏÓÔÉ ÏÂßÑ×ÌÅÎÉÑ ÔÏÖÅ ×ÎÑÔÎÏÓÔØÀ ÎÅ ÏÔÌÉÞÁÀÔÓÑ.

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

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

DO> ðÉÛÅÛØ

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

DO> s = (short)a+b;

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

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

Dimmy.

ðÒÉ×ÅÔ Dimmy! ñ ÎÅÍÎÏÇÏ Ô×ÏÉ ÁÂÚÁÃÙ ÐÅÒÅÓÔÁ×ÉÌ ÍÅÓÔÁÍÉ ÄÁÂÙ Ä×ÁÖÄÙ ÎÅ ÏÔ×ÅÞÁÔØ ÏÄÉÎÁËÏ×Ï.

16 Oct 05 06:46, Dimmy Timchenko ÐÉÓÁÌ Alex Mogilnikov:

AM>> ëÁË ÔÕÔ ÕÖÅ ÇÏ×ÏÒÉÌÉ, ÜÔÏ ÍÏÖÎÏ É × C.

DT> úÁ ÉÓËÌÀÞÅÎÉÅÍ ÐÁÒÁÍÅÔÒÁ ÃÉËÌÁ. ðÒÉģÔÓÑ ÏËÒÕÖÁÔØ for ÓËÏÂËÁÍÉ É DT> ÏÂßÑ×ÌÑÔØ ÐÁÒÁÍÅÔÒ ÐÅÒÅÄ ÏÐÅÒÁÔÏÒÏÍ, ÞÔÏ ÚÁÈÌÁÍÌÑÅÔ ÔÅËÓÔ É ÓÎÉÖÁÅÔ DT> ÞÉÔÁÅÍÏÓÔØ.

HÅÐÒÁ×ÄÁ.

======== test.c ============ void bar(int);

void foo(void) { bar(999);

for(int i = 0; i < 10; i++) bar(i);

int i = 555; bar(i); } ============================

úÄÅÓØ ×ÓÅ ÓÉÎÔÁËÓÉÞÅÓËÉ ËÏÒÒÅËÔÎÏ É ÎÅÔ ÎÉËÁËÉÈ ÌÉÛÎÉÈ ÓËÏÂÏË.

AM>> þÔÏ ÔÁËÏÅ with Ñ ÎÅ ÚÎÁÀ,

DT> á! úÒÑ ÎÅ ÚÎÁÅÛØ. :) üÔÏ ÚÁÄÁÎÉÅ ËÏÎÔÅËÓÔÁ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ DT> ÓÔÒÕËÔÕÒ (× ÐÁÓËÁÌÅ ÏÎÉ ÎÁÚÙ×ÁÀÔÓÑ records):

DT> for i := 1 to NFREQ do _with acc_table[i] do_ begin DT> Q0 := Q1 * coeff - Q2 + sample; DT> Q2 := Q1; DT> Q1 := Q0; DT> end;

ôÏ ÅÓÔØ ËÏÍÐÉÌÑÔÏÒ ×ÎÕÔÒÉ width ÒÁÓÛÉÒÑÅÔ Q0 ÄÏ acc_table[i].Q0 (ÎÅ ÐÏÍÎÀ ÔÏÞÎÏ ÓÉÎÔÁËÓÉÓ ðÁÓËÁÌÑ)? äÁ, ÜÔÏÍÕ ÁÎÁÌÏÇÁ ÎÅÔ.

AM>> Á ÏÓÔÁÌØÎÏÅ ÍÏÖÎÏ × C++.

DT> íÏÖÎÏ, ÎÏ ÏÎÏ ÎÅ ÉÎÔÅÇÒÉÒÏ×ÁÎÏ × ÑÚÙË.

á ÐÒÏÇÒÁÍÍÉÓÔÕ ÎÅ ×ÓÅ ÌÉ ÒÁ×ÎÏ? üÔÏ ÄÁÖÅ ÈÏÒÏÛÏ! :) ÷ÓÅ ÉÎÔÅÇÒÉÒÏ×ÁÔØ × ÑÚÙË ×ÓÅ ÒÁ×ÎÏ ÎÅÌØÚÑ, ÉÎÁÞÅ ÎÁ ÉÚÕÞÅÎÉÅ ÔÁËÏÇÏ ÑÚÙËÁ ÐÏÔÒÅÂÕÅÔÓÑ ×ÅÞÎÏÓÔØ. á ÔÁË ÐÒÏÇÒÁÍÍÉÓÔ ÉÍÅÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÓÁÍ ÓÄÅÌÁÔØ ÞÔÏ ÎÕÖÎÏ, É ÉÍÅÎÎÏ ÔÁË, ËÁË ÎÕÖÎÏ.

AM>> äÁ, C ÐÏÚ×ÏÌÑÅÔ ÐÉÓÁÔØ ÎÅ×ÎÑÔÎÏ. HÏ ÍÏÖÎÏ ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔØÀ ÎÅ AM>> ÐÏÌØÚÏ×ÁÔØÓÑ.

DT> ðÏÐÒÏÂÕÊ ×ÎÑÔÎÏ ÎÁÐÉÓÁÔØ ÄÅËÌÁÒÁÃÉÀ/ÄÅÆÉÎÉÃÉÀ ÞÅÇÏ-ÎÉÂÕÄØ, ÓÏÄÅÒÖÁÝÅÇÏ DT> ÕËÁÚÁÔÅÌÉ. äÌÑ ÜÔÏÇÏ ÄÁÖÅ ÓÐÅÃÉÁÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ ÐÒÉÄÕÍÁÌÉ, cdecl É DT> cundecl. :)

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

======================= void *(*a[10])(char *); ======================= typedef void * TFunction(char *);

typedef TFunction * TFunctionPtr;

TFunctionPtr a[10]; =======================

DT> é C++ ÜÔÕ ÔÒÁÄÉÃÉÀ ÐÒÏÄÏÌÖÉÌ, ÎÁÐÒÉÍÅÒ, × ÓÉÎÔÁËÓÉÓÅ ÔÅÍÐÌÅÊÔÏ×.

áÎÁÌÏÇÉÞÎÏ: ======================= std::map<std::basic_string<TMyChar>, std::list<std::set<TMyType> > >::iterator i; ======================= typedef std::set<TMyType> TMySet;

typedef std::list<TMySet> TListOfSet;

typedef std::basic_string<TMyChar> TMyString;

typedef std::map<TMyString, TListOfSet> TMyMap;

typedef TMyMap::iterator TMyIterator;

TMyIterator i; =======================

AM>> ôÁË C ÎÅ ÚÁÐÒÅÝÁÅÔ ÔÅÂÅ ÜÔÏÇÏ ÄÅÌÁÔØ. ðÉÛÉ

AM>> short s = (short)0; AM>> long l = (long)s;

DT> HÕ ÚÄÒÁÓÔÉ. á × ×ÙÒÁÖÅÎÉÑÈ?

AM>> ÷Ï-×ÔÏÒÙÈ, ÎÅ ÐÏÎÉÍÁÀ, ÞÅÍ ÜÔÏ ÌÕÞÛÅ ÞÅÍ short s = 0;.

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

ôÏ ÅÓÔØ ÔÙ ÕÖÅ ÎÅ ÐÒÏÔÉ× _ÌÀÂÏÇÏ_ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÏ×, Á ÐÒÏÔÉ× ÎÅÇÏ ÌÉÛØ × ËÁËÉÈ-ÔÏ ÏÔÄÅÌØÎÙÈ ÓÌÕÞÁÑÈ? :) ÷ ËÁËÉÈ? ðÒÉ×ÅÄÉ ÖÅ ÐÒÉÍÅÒ, ÒÁÚÇÏ×ÏÒ ÓÔÁÎÅÔ ÐÒÅÄÍÅÔÎÙÍ...

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

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

ôÁË ×ÓÅ-ÔÁËÉ, Ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ ÔÅÂÅ ÈÏÞÅÔÓÑ, ÞÔÏÂÙ ÐÒÉ ×ÙÚÏ×Å f(100, 200) ×ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ ÂÙÌÏ ÎÅÏÐÒÅÄÅÌÅÎÏ? åÓÌÉ ÄÁ, ÔÏ C++ ÐÏÚ×ÏÌÑÅÔ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ TMy8bitByte É ÏÐÅÒÁÔÏÒÙ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÉÍ.

AM>> ôÏÌØËÏ ×Ï-ÐÅÒ×ÙÈ, ÞÅÍ ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ - ÔÅÍ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ AM>> ÓÄÅÌÁÔØ ÏÛÉÂËÕ.

DT> ôÉÐÉÞÎÏÅ ÚÁÂÌÕÖÄÅÎÉÅ ÓÉÏÎÉÓÔÏ×. ;) þÅÍ ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ - ÔÅÍ ÂÏÌØÛÅ DT> ×ÏÚÍÏÖÎÏÓÔÅÊ Õ ËÏÍÐÉÌÑÔÏÒÁ _ÏÔÌÏ×ÉÔØ_ ÏÛÉÂËÕ.

short s = (short)0;

ëÁËÏÇÏ ÒÏÄÁ ÏÛÉÂËÉ (ËÒÏÍÅ ÏÐÅÞÁÔÏË, ËÏÇÄÁ ×ÍÅÓÔÏ short ËÏÄÅÒ ÎÁÐÉÛÅÔ shirt) ÍÏÖÅÔ ÏÔÌÏ×ÉÔØ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ËÏÍÐÉÌÑÔÏÒ?

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

ïÂÏÓÎÕÊ. þÅÍ ÂïÌØÛÁÑ ÉÚÂÙÔÏÞÎÏÓÔØ ÌÕÞÛÅ ÍåÎØÛÅÊ? ôÁË ×ÅÄØ ÍÏÖÎÏ ÄÏÊÔÉ ÄÏ Ä×ÏÊÎÏÇÏ ÕËÁÚÁÎÉÑ ÐÅÒÅÍÅÎÎÏÊ : res:res = var1:var1 + var2:var2; ÉÚ ÔÏÇÏ ÓÏÏÂÒÁÖÅÎÉÑ, ÞÔÏ ÅÓÌÉ Ä×Á ÎÁÂÒÁÎÎÙÈ ÉÍÅÎÉ ÎÅ ÓÏ×ÐÁÄÁÀÔ, ÔÉÐÁ sin(var1:var2), ÔÏ ÜÔÏ ÏÛÉÂËÁ. á ÅÓÌÉ ÕÖ Ñ ÎÁÂÒÁÌ sin(var2:var2), ÔÏ ×ÒÑÄ ÌÉ ÍÏÖÎÏ ÓÏÍÎÅ×ÁÔØÓÑ, ÞÔÏ ÉÍÅÎÎÏ ÏÔ ÐÅÒÅÍÅÎÎÏÊ var2 Ñ ÈÏÔÅÌ ×ÚÑÔØ ÓÉÎÕÓ. áÈ ÄÁ, ÌÕÞÛÅ ÐÉÓÁÔØ sin:sin, ÞÔÏÂÙ ÎÅ ÂÙÌÏ ÓÏÍÎÅÎÉÊ, ÞÔÏ ×ÚÑÔØ Ñ ÈÏÞÕ ÉÍÅÎÎÏ ÓÉÎÕÓ, Á ÎÅ ËÏÓÉÎÕÓ. :) HÁÄÏ ÖÅ, ÎÁ×ÅÒÎÏÅ, ×ÙÂÉÒÁÔØ ËÁËÏÊ-ÔÏ ÂÁÌÁÎÓ ÍÅÖÄÕ ×ÏÚÍÏÖÎÏÓÔØÀ ÏÔÌÏ×Á ÏÛÉÂÏË ÔÒÁÎÓÌÑÔÏÒÏÍ É ÃÅÎÏÊ, ËÏÔÏÒÕÀ ÚÁ ÜÔÏ ÂÕÄÅÔ ÐÌÁÔÉÔØ ËÏÄÅÒ. éÎÁÞÅ ÔÁËÉÍ "ÏÛÉÂËÏÕÓÔÏÊÞÉ×ÙÍ" ÑÚÙËÏÍ ÎÉËÔÏ ÎÅ ÓÔÁÎÅÔ ÐÏÌØÚÏ×ÁÔØÓÑ. åÝÅ ÜÔÏ ÚÁ×ÉÓÉÔ É ÏÔ ÕÒÏ×ÎÑ ËÏÄÅÒÁ. HÁÞÉÎÁÀÝÉÊ ÉÚÕÞÁÔØ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ÄÅÌÁÅÔ ÏÄÎÉ ÏÛÉÂËÉ, ÐÒÏÆÅÓÓÉÏÎÁÌ - ÄÒÕÇÉÅ. åÓÌÉ ÎÁÞÉÎÁÀÝÉÊ ÐÒÉÓ×ÁÉ×ÁÅÔ ÚÎÁÞÅÎÉÅ ÏÄÎÏÇÏ ÔÉÐÁ ÐÅÒÅÍÅÎÎÏÊ ÄÒÕÇÏÇÏ ÔÉÐÁ, ÌÏÇÉÞÎÏ ÐÒÅÄÐÏÌÏÖÉÔØ, ÞÔÏ ÏÎ ÄÅÌÁÅÔ ÏÛÉÂËÕ, Á ÎÁ ÔÏÔ ÉÓËÌÀÞÉÔÅÌØÎÙÊ ÓÌÕÞÁÊ, ËÏÇÄÁ ÅÍÕ ÜÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÁÄÏ, ÔÒÅÂÏ×ÁÔØ ÐÉÓÁÔØ ÏÐÅÒÁÔÏÒ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÁ. ðÒÏÆÅÓÓÉÏÎÁÌ ÓËÁÖÅÔ: "ëÁËÏÇÏ ÞÅÒÔÁ? åÓÌÉ Ñ ÎÁÐÉÓÁÌ ÐÒÉÓ×ÁÉ×ÁÎÉÅ, ÚÎÁÞÉÔ ÍÎÅ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÜÔÏ ÎÕÖÎÏ. é ÎÅÚÁÞÅÍ ÍÎÅ ÔÕÔ ÓÏÐÌÉ ÐÏÄÔÉÒÁÔØ". äÌÑ ÎÅÇÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÁ × ÜÔÏÍ ×ÙÒÁÖÅÎÉÉ ÓÁÍÏ ÓÏÂÏÊ ÒÁÚÕÍÅÅÔÓÑ. é ÍÏÅ ÍÎÅÎÉÅ ÐÏ ÐÏ×ÏÄÕ ÌÕÞÛÅÊ ÞÉÔÁÅÍÏÓÔÉ - '{' ÎÁÐÒÉÍÅÒ ÌÕÞÛÅ ÞÅÍ 'begin', ÔÁË ËÁË ×ÉÚÕÁÌØÎÏ ÓÉÌØÎÅÅ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÄÒÕÇÉÈ ÌÅËÓÅÍ - ÔÁËÉÈ ËÁË ÉÍÅÎÁ ÔÉÐÏ× É ÏÂßÅËÔÏ× (×ÏÔ ÔÅÂÅ É ÎÅÐÏÈÏÖÅÓÔØ ÓÉÎÔÁËÓÉÞÅÓËÉÈ ÜÌÅÍÅÎÔÏ×). HÏ ÄÁÖÅ ÅÓÌÉ ÔÙ ÄÒÕÇÏÇÏ ÍÎÅÎÉÑ, ÑÚÙË ÎÅ ÚÁÐÒÅÝÁÅÔ ÔÅÂÅ ÏÂßÑ×ÉÔØ Ä×Á ÍÁËÒÏÓÁ:

#define begin { #define end }

:)

ëÓÔÁÔÉ, ÎÅ ÐÒÏÔÉ×ÏÒÅÞÉÔ ÌÉ Ô×ÏÅ ÖÅÌÁÎÉÅ ÉÍÅÔØ ÏÐÅÒÁÔÏÒ with ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÑÚÙËÁ ÂÙÔØ ÉÚÂÙÔÏÞÎÙÍ? íÎÅ ËÁÖÅÔÓÑ, ÔÁËÏÊ ÏÐÅÒÁÔÏÒ ÍÏÖÅÔ ÐÏÍÅÛÁÔØ ËÏÍÐÉÌÑÔÏÒÕ ÏÔÌÏ×ÉÔØ ÎÅËÏÔÏÒÙÅ ÏÛÉÂËÉ. :) ñ, × Ó×ÏÀ ÏÞÅÒÅÄØ, ÄÏÌÖÅÎ ÕÔÏÞÎÉÔØ: ÐÏÄ "ÂÏÌØÛÅ ÐÉÓÁÎÉÎÙ" Ñ ÉÍÅÌ × ×ÉÄÕ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÌÅËÓÅÍ × ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ. üËÏÎÏÍÉÔØ ËÁÖÄÙÊ ÓÉÍ×ÏÌ Ñ ÎÉ × ËÏÅÊ ÍÅÒÅ ÎÅ ÐÒÉÚÉ×ÁÀ.

DT> ëÓÔÁÔÉ, ÅÓÌÉ ÐÏÄËÉÎÅÛØ ÓÓÙÌËÉ ÎÁ ÐÏÌÅÚÎÙÅ ÄÌÑ embedded ÂÉÂÌÉÏÔÅËÉ, DT> ÂÕÄÕ ÏÞÅÎØ ÂÌÁÇÏÄÁÒÅÎ.

éÍÅÎÎÏ ÄÌÑ embedded -
formatting link
á ÔÁË ×-ÏÓÎÏ×ÎÏÍ ÓÁÍÏÐÉÓÎÙÅ ÂÉÂÌÉÏÔÅËÉ ÉÓÐÏÌØÚÕÀ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... HÅ ÍÅÓÔÏ ÐÏÒÔÉÔ ÞÅÌÏ×ÅËÁ, Á ÞÅÌÏ×ÅË ÍÅÓÔÏ.

Hello Dmitry.

Sun Oct 16 2005 15:45, Dmitry Orlov wrote to me:

DO>>> äÌÑ ÞÅÇÏ ÎÅ ÐÒÉÓÐÏÓÏÂÌÅÎÁ?

DT>> äÌÑ ÓÏÚÄÁÎÉÑ ÜÆÆÅËÔÉ×ÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× Ó ñ÷õ. ÷ÏÔ ÎÁ ÔÏÍ ÖÅ

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