WINAVR

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

Thu, 03 Nov 2005 13:58:32 +0300 Alex Mogilnikov wrote to Harry Zhurov:

AM> HÅ ÓÏ×ÓÅÍ. åÓÔØ ÅÝÅ ÏÂÒÁÔÎÁÑ ÓÔÏÒÏÎÁ. ëÏÇÄÁ ÔÙ ×ÉÄÉÛØ ×ÙÚÏ× ÆÕÎËÃÉÉ, AM> ÞÔÏÂÙ ÐÏÎÑÔØ, ÓÏÚÄÁÅÔÓÑ ÌÉ ËÏÐÉÑ ÏÂßÅËÔÁ, ÉÌÉ ÏÎ ÐÅÒÅÄÁÅÔÓÑ ÐÏ ÓÓÙÌËÅ, ÎÁÄÏ AM> ÎÁ ÐÒÏÔÏÔÉÐ ÆÕÎËÃÉÉ ÓÍÏÔÒÅÔØ. ëÏÇÄÁ ×ÉÄÉÛØ f(&var) - ÓÒÁÚÕ ÑÓÎÏ, ÞÔÏ ËÏÐÉÑ AM> ÎÅ ÓÏÚÄÁÅÔÓÑ. ôÏÌØËÏ É ×ÓÅÇÏ.

îÅ ÓÏ×ÓÅÍ. åÓÔØ ÅÝÅ ÏÂÒÁÔÎÁÑ ÓÔÏÒÏÎÁ. ëÏÇÄÁ ÔÙ ×ÉÄÉÛØ ×ÙÚÏ× ÆÕÎËÃÉÉ, ÞÔÏÂÙ ÐÏÎÑÔØ, ËÁËÏÊ ÏÂßÅËÔ ÒÅÁÌØÎÏ ÐÅÒÅÄÁÅÔÓÑ, ÎÁÄÏ ×ÓÅÇÄÁ ÓÍÏÔÒÅÔØ ÐÒÏÔÏÔÉÐ. ëÏÇÄÁ ×ÉÄÉÛØ f(var) - ÎÉÆÉÇÁ ÎÅ ÑÓÎÏ, ÞÔÏ var - ÜÔÏ ÍÁÓÓÉ×. :-ò éÔÏÇÏ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÓÓÙÌËÉ ÐÒÉ ÐÒÏÞÉÈ ÒÁ×ÎÙÈ ×ÓÅÇÄÁ ÐÒÅÄÐÏÞÔÉÔÅÌØÎÅÅ, Ô.Ë. ÍÅÎØÛÅ ÐÉÓÁÎÉÎÙ, ÍÅÎØÛÅ ËÒÁËÏÚÑÂÒ × ×ÉÄÅ ÁÍÂÅÒÓÁÎÄÏ× É Ú×ÅÚÄÏÞÅË É, ÇÌÁ×ÎÏÅ, ÂÅÚÏÐÁÓÎÅÅ.
ðÒÉ×ÅÔ Dimmy!

03 Nov 05 06:32, Dimmy Timchenko ÐÉÓÁÌ Alex Mogilnikov:

DT>>> åÓÌÉ ÓÓÙÌËÁ ÎÅ ÕËÁÚÙ×ÁÅÔ ÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ, ÜÔÏ ÄÏÌÖÎÏ DT>>> ×ÏÓÐÒÉÎÉÍÁÔØÓÑ, ËÁË ÏÛÉÂËÁ.

DT> nil/NULL Ñ ÏÔÍÅÎÉÔØ ÎÅ ÐÙÔÁÌÓÑ. é, ÄÕÍÁÀ, ÔÙ ÜÔÏ ÐÏÎÉÍÁÅÛØ. :)

ñ ÎÅ ÐÏÎÑÌ ËÏÎËÒÅÔÎÏ ×ÙÛÅÏÔË×ÏÞÅÎÎÕÀ ÆÒÁÚÕ. þÔÏ ÚÁÎÞÉÔ "nil/NULL ÄÏÌÖÎÏ ×ÏÓÐÒÉÎÉÍÁÔØÓÑ ËÁË ÏÛÉÂËÁ".

DT> ÷ӣ ÏÞÅÎØ ÐÒÏÓÔÏ:

DT> 1) nil ÎÅ ÒÁÚÙÍÅÎÏ×Ù×ÁÅÔÓÑ, runtume-ÐÒÏ×ÅÒËÁ;

üÔÏ ÔÏÌØËÏ ÐÏÌ-ÄÅÌÁ. éÚ ×ÓÔÒÅÞÁÅÍÙÈ ÍÎÏÊ ÎÁ ÐÒÁËÔÉËÅ ÏÛÉÂÏË ÏÂÒÁÝÅÎÉÅ ÐÏ null pointer ×ÓÔÒÅÞÁÀÔÓÑ ÒÅÖÅ, ÞÅÍ ÏÂÒÁÝÅÎÉÑ ÐÏ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÍ ÕËÁÚÁÔÅÌÑÍ. óÔÁÌÏ ÂÙÔØ, ÔÒÅÂÕÅÍ ÅÝÅ É ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÎÅÓÔÁÔÉÞÅÓËÉÈ ÕËÁÚÁÔÅÌÅÊ?

DT> 2) Õ ÕËÁÚÁÔÅÌÑ ÄÏÌÖÅÎ ÂÙÔØ ÔÉÐ É ÔÉÐ ÜÔÏÔ ÄÏÌÖÅÎ ÐÒÏ×ÅÒÑÔØÓÑ;

âÅÓÓÐÏÒÎÏ.

DT> 3) ÎÅ ÄÏÌÖÎÏ ÂÙÔØ "ÁÄÒÅÓÎÏÊ ÁÒÉÆÍÅÔÉËÉ" ËÒÏÍÅ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÕËÁÚÁÔÅÌÀ DT> ÚÎÁÞÅÎÉÑ É ÓÒÁ×ÎÅÎÉÑ ÕËÁÚÁÔÅÌÅÊ;

þÅÍ ÍÅÛÁÅÔ ÁÄÒÅÓÎÁÑ ÁÒÉÆÍÅÔÉËÁ? ëÔÏ ÚÁÓÔÁ×ÌÑÅÔ ÅÅ ÉÓÐÏÌØÚÏ×ÁÔØ?

DT> 4) ÕËÁÚÁÔÅÌÀ ÍÏÖÎÏ ÐÒÉÓ×ÏÉÔØ ÚÎÁÞÅÎÉÅ DT> nil, ÚÎÁÞÅÎÉÅ, ×ÏÚ×ÒÁÝÁÅÍÏÅ ÏÐÅÒÁÔÏÒÏÍ new É ÚÎÁÞÅÎÉÅ "ÁÄÒÅÓÁ" DT> ÓÕÝÅÓÔ×ÕÀÝÅÇÏ ÏÂßÅËÔÁ (&var);

òÅÚÏÎÎÏ, ÅÓÌÉ ÐÒÉÎÑÔØ Ð. 3.

DT> 5) ÐÒÉ ÕÎÉÞÔÏÖÅÎÉÉ ÏÂßÅËÔÁ ×ÓÅÍ DT> ÕËÁÚÁÔÅÌÑÍ ÎÁ ÜÔÏÔ ÏÂßÅËÔ ÄÏÌÖÎÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉÓ×ÁÉ×ÁÔØÓÑ ÚÎÁÞÅÎÉÅ DT> nil. ëÏÎÅÞÎÏ, ÔÒÅÂÕÅÔ ÒÁÎÔÁÊÍ-ÐÏÄÄÅÒÖËÉ, ÎÏ ÏÞÅÎØ ÓÕÝÅÓÔ×ÅÎÎÏ.

ôÙ ÐÒÅÄÓÔÁ×ÌÑÅÛØ, ËÁËÕÀ ÃÅÎÕ ÚÁ ÜÔÏ ÐÒÉÄÅÔÓÑ ÐÌÁÔÉÔØ? üÔÏ ÐÏÌÕÞÁÅÔÓÑ, ÞÔÏ _ËÁÖÄÙÊ_ ÏÂßÅËÔ ÄÏÌÖÅÎ ËÒÏÍÅ Ó×ÏÅÇÏ ÚÎÁÞÅÎÉÑ ÈÒÁÎÉÔØ ÄÉÎÁÍÉÞÅÓËÉ ÉÚÍÅÎÑÅÍÙÊ ÓÐÉÓÏË ÕËÁÚÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÎÁ ÎÅÇÏ ÕËÁÚÙ×ÁÀÔ. ìÀÂÁÑ ÍÏÄÉÆÉËÁÃÉÑ ÕËÁÚÁÔÅÌÑ ÂÕÄÅÔ ÐÒÉ×ÏÄÉÔØ Ë ÍÏÄÉÆÉËÁÃÉÉ ÜÔÏÇÏ ÓÐÉÓËÁ ÕËÁÚÙ×ÁÅÍÏÇÏ ÏÂßÅËÔÁ. äÌÑ ÕËÁÚÁÔÅÌÅÊ ÎÁ volatile ÏÂßÅËÔÙ runtime ÐÒÏ×ÅÒËÁ ÉÚ Ð. 1 ×ÙÌØÅÔÓÑ × ÎÅÏÂÈÏÄÉÍÏÓÔØ ÚÁÐÒÅÝÁÔØ ÐÒÅÒÙ×ÁÎÉÑ ÓÒÅÄÓÔ×ÁÍÉ ÑÚÙËÁ ÎÁ ×ÒÅÍÑ ÏÂÒÁÝÅÎÉÑ ÐÏ ÕËÁÚÁÔÅÌÀ. HÅ ÓÌÉÛËÏÍ ÌÉ ÖÉÒÎÏ ÄÌÑ ÐÒÉÍÅÎÅÎÉÑ ×Ï ×ÓÔÒÏÅÎÎÙÈ ÓÉÓÔÅÍÁÈ? HÅ ÇÏ×ÏÒÑ ÕÖÅ Ï ÔÏÍ, ÞÔÏ × C++ ×ÓÅ ÔÏÂÏÊ ÖÅÌÁÅÍÏÅ ×ÏÚÍÏÖÎÏ.

AM>> ? õËÁÚÁÔÅÌÉ - ÎÅ ÚÁÍÅÎÁ ÍÁÓÓÉ×Ï×.

DT> :)) óËÁÖÉ ÜÔÏ K&R É ÉÈ ÐÏÓÌÅÄÏ×ÁÔÅÌÑÍ.

ñ ÒÁÚÇÏ×ÁÒÉ×ÁÀ Ó ÔÏÂÏÊ, ÐÏÜÔÏÍÕ É ÇÏ×ÏÒÀ ÔÅÂÅ. é ÏÓÔÁÌØÎÙÍ ÐÏÄÐÉÓÞÉËÁÍ ÜÈÉ. åÓÌÉ ÐÏÓÌÅÄÏ×ÁÔÅÌÉ K&R ÈÏÔÑÔ ÚÎÁÔØ ÍÏÅ ÍÎÅÎÉÅ, ÐÕÓÔØ ÐÏÄÐÉÓÙ×ÁÀÔÓÑ. :)

DT> :) ôÏÌØËÏ Ó ÔÁËÉÍ ÕÓÌÏ×ÉÅÍ: DT> int f(TObject * const z) DT> ôÏ ÅÓÔØ ÄÏÌÖÎÏ ÂÙÔØ ÚÁÐÒÅÝÅÎÏ ÍÅÎÑÔØ ÚÎÁÞÅÎÉÅ z × ÔÅÌÅ ÆÕÎËÃÉÉ.

ðÏÞÅÍÕ? áÒÇÕÍÅÎÔÉÒÕÊ, ÐÏÖÁÌÕÊÓÔÁ.

DT> á Åݣ ÈÏÒÏÛÁÑ ÆÉÞÁ ÅÓÔØ × ÍÁÔÌÁÂÏ×ÓËÏÍ M-ÑÚÙËÅ: DT> function [x, y, z] = SomeFunction (a, b, c) DT> é ÎÅ ÎÁÄÏ ÎÉËÁËÏÊ ÐÅÒÅÄÁÞÉ ÐÏ ÓÓÙÌËÅ. :)

á ÞÔÏ ÜÔÁ ÆÉÞÁ ÄÅÌÁÅÔ? ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... úÁËÒÏÊ Ó×ÏÊ ÷ÏÒÄ!

Hello Andrey.

Thu Nov 03 2005 12:47, Andrey Solomatov wrote to me:

AM>>> é ÄÌÑ ÓÏÒÔÉÒÏ×ËÉ ÍÁÓÓÉ×Á ÎÁÄÏ ÄÅÌÁÔØ Ä×Á ÒÁÚÎÙÈ ÍÅÔÏÄÁ: ÏÄÉÎ - ÄÌÑ AM>>> ÄÉÎÁÍÉÞÅÓËÉÈ ÍÁÓÓÉ×Ï×, ÄÒÕÇÏÊ - ÄÌÑ ÓÔÁÔÉÞÅÓËÉÈ? :)

DT>> HÁÄÏ ÄÅÌÁÔØ ÔÅÍÐÌÅÊÔ É/ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÎÕÀ ÆÕÎËÃÉÀ.

AS> úÄÒÁÓÓØÔÅ, ÔÙ ÞÅÇÏ? AS> õËÁÚÁÔÅÌØ ÒÁÚÙÍÅÎÏ×Ù×ÁÅÔÓÑ × ×ÙÒÁÖÅÎÉÉ ×ÙÚÏ×Á ÐÒÏÃÅÄÕÒÙ.

á, ×ÅÒÎÏ! ÷ ÐÁÓËÁÌÅ ×ÅÄØ ÔÏÖÅ. üÔÏ ÍÅÎÑ ÏÔ ÂÅÓÅÄ Ó ÓÉÛÎÉËÁÍÉ ÐÅÒÅËÌÉÎÉÌÏ. ;)

AS> ðÌÀÓ × áÄÅ - ÐÁÒÁÍÅÔÒ-ÍÁÓÓÉ× × ÐÒÏÃÅÄÕÒÅ ÍÏÖÅÔ ÉÍÅÔØ ÎÅÏÐÒÅÄẠ̊ÎÎÕÀ AS> ÒÁÚÍÅÒÎÏÓÔØ - ÓÔÁÎÄÁÒÔÎÙÅ ÁÔÒÉÂÕÔÙ ÐÏÚ×ÏÌÑÀÔ ÏÐÒÅÄÅÌÉÔØ ÆÁËÔÉÞÅÓËÕÀ AS> ÒÁÚÍÅÒÎÏÓÔØ × ÍÏÍÅÎÔ ×ÙÚÏ×Á.

õÇÕ. áÔÒÉÂÕÔÙ - ×ÏÏÂÝÅ ÚÁÍÅÞÁÔÅÌØÎÁÑ ×ÅÝØ. á × C ÔÏÌØËÏ sizeof...

AS> ëÒÏÍÅ ÔÏÇÏ, × áÄÅ ÅÓÔØ ÔÁËÁÑ ÆÉÞÁ (ÈÏÔÑ, ÍÏÖÅÔ É ÂÙÌÁ, É ÐÏÔÅÎÃÉÁÌØÎÏ, AS> ÉÍÏ, ÍÏÖÅÔ É ÇÌÀËÏ- ;), ÞÔÏ × ×ÙÒÁÖÅÎÉÉ ÕËÁÚÁÔÅÌØ ÒÁÚÙÍÅÎÕÅÔÓÑ AS> "Á×ÔÏÍÁÔÉÞÅÓËÉ" - Ô.Å.

AS> i:= iptr.all + 1; -- ÅÓÌÉ i - ÜÜ, ÚÁÂÙÌ ËÁË ÔÁÍ ÃÅÌÏÅ ÏÂÚÙ×ÁÅÔÓÑ ;) AS> i:= iptr + 1; AS> ÄÏÐÕÓÔÉÍÏ É ÏÄÎÏ É ÔÏÖÅ.

äÕÍÁÀ, × áÄÅ'95 ÄÏÌÖÎÙ ÂÙÌÉ ÔÁËÏÅ ÄÅÌÏ ÕÂÒÁÔØ.

Dimmy.

Hello Alex.

Thu Nov 03 2005 15:24, Alex Mogilnikov wrote to me:

DT>>>> åÓÌÉ ÓÓÙÌËÁ ÎÅ ÕËÁÚÙ×ÁÅÔ ÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ, ÜÔÏ ÄÏÌÖÎÏ DT>>>> ×ÏÓÐÒÉÎÉÍÁÔØÓÑ, ËÁË ÏÛÉÂËÁ.

DT>> nil/NULL Ñ ÏÔÍÅÎÉÔØ ÎÅ ÐÙÔÁÌÓÑ. é, ÄÕÍÁÀ, ÔÙ ÜÔÏ ÐÏÎÉÍÁÅÛØ. :)

AM> ñ ÎÅ ÐÏÎÑÌ ËÏÎËÒÅÔÎÏ ×ÙÛÅÏÔË×ÏÞÅÎÎÕÀ ÆÒÁÚÕ. þÔÏ ÚÁÎÞÉÔ "nil/NULL AM> ÄÏÌÖÎÏ ×ÏÓÐÒÉÎÉÍÁÔØÓÑ ËÁË ÏÛÉÂËÁ".

éÍÅÌÁÓØ × ×ÉÄÕ ÓÓÙÌËÁ, ÎÅ ÒÁ×ÎÁÑ nil, ÎÏ ÎÅ ÕËÁÚÙ×ÁÀÝÁÑ ÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÔÉÐÁ. Stray pointer, ËÁÖÅÔÓÑ.

DT>> ÷ӣ ÏÞÅÎØ ÐÒÏÓÔÏ:

DT>> 1) nil ÎÅ ÒÁÚÙÍÅÎÏ×Ù×ÁÅÔÓÑ, runtume-ÐÒÏ×ÅÒËÁ;

AM> üÔÏ ÔÏÌØËÏ ÐÏÌ-ÄÅÌÁ. éÚ ×ÓÔÒÅÞÁÅÍÙÈ ÍÎÏÊ ÎÁ ÐÒÁËÔÉËÅ ÏÛÉÂÏË AM> ÏÂÒÁÝÅÎÉÅ ÐÏ null pointer ×ÓÔÒÅÞÁÀÔÓÑ ÒÅÖÅ, ÞÅÍ ÏÂÒÁÝÅÎÉÑ ÐÏ AM> ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÍ ÕËÁÚÁÔÅÌÑÍ. óÔÁÌÏ ÂÙÔØ, ÔÒÅÂÕÅÍ ÅÝÅ É AM> ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÎÅÓÔÁÔÉÞÅÓËÉÈ ÕËÁÚÁÔÅÌÅÊ?

á ÐÏÞÅÍÕ ÂÙ É ÎÅÔ? HÅ ÔÁËÏÊ ÕÖ ÂÏÌØÛÏÊ Ï×ÅÒÈÅÄ. ÷ÐÒÏÞÅÍ, ÔÁËÉÅ ×ÅÝÉ ÕÍÅÅÔ ÌÏ×ÉÔØ É ËÏÍÐÉÌÑÔÏÒ.

DT>> 2) Õ ÕËÁÚÁÔÅÌÑ ÄÏÌÖÅÎ ÂÙÔØ ÔÉÐ É ÔÉÐ ÜÔÏÔ ÄÏÌÖÅÎ ÐÒÏ×ÅÒÑÔØÓÑ;

AM> âÅÓÓÐÏÒÎÏ.

DT>> 3) ÎÅ ÄÏÌÖÎÏ ÂÙÔØ "ÁÄÒÅÓÎÏÊ ÁÒÉÆÍÅÔÉËÉ" ËÒÏÍÅ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÕËÁÚÁÔÅÌÀ DT>> ÚÎÁÞÅÎÉÑ É ÓÒÁ×ÎÅÎÉÑ ÕËÁÚÁÔÅÌÅÊ;

AM> þÅÍ ÍÅÛÁÅÔ ÁÄÒÅÓÎÁÑ ÁÒÉÆÍÅÔÉËÁ? ëÔÏ ÚÁÓÔÁ×ÌÑÅÔ ÅÅ ÉÓÐÏÌØÚÏ×ÁÔØ?

HÅËÏÔÏÒÙÅ ×ÅÝÉ ÎÅ ÎÁÄÏ ÚÁÓÔÁ×ÌÑÔØ ÄÅÌÁÔØ, Á ÎÁÄÏ ÚÁÐÒÅÝÁÔØ. :) íÙ ×ÅÄØ ÄÏÇÏ×ÏÒÉÌÉÓØ, ÞÔÏ ÕËÁÚÁÔÅÌØ ÎÕÖÅÎ ÄÌÑ ÒÁÂÏÔÙ Ó ÄÉÎÁÍÉÞÅÓËÉÍÉ ÏÂßÅËÔÁÍÉ. á ÄÌÑ ÉÎÄÅËÓÁÃÉÉ, ÎÁÐÒÉÍÅÒ, ÍÁÓÓÉ×Á ÅÓÔØ ÄÒÕÇÉÅ ÓÒÅÄÓÔ×Á ÑÚÙËÁ.

DT>> 4) ÕËÁÚÁÔÅÌÀ ÍÏÖÎÏ ÐÒÉÓ×ÏÉÔØ ÚÎÁÞÅÎÉÅ DT>> nil, ÚÎÁÞÅÎÉÅ, ×ÏÚ×ÒÁÝÁÅÍÏÅ ÏÐÅÒÁÔÏÒÏÍ new É ÚÎÁÞÅÎÉÅ "ÁÄÒÅÓÁ" DT>> ÓÕÝÅÓÔ×ÕÀÝÅÇÏ ÏÂßÅËÔÁ (&var);

AM> òÅÚÏÎÎÏ, ÅÓÌÉ ÐÒÉÎÑÔØ Ð. 3.

DT>> 5) ÐÒÉ ÕÎÉÞÔÏÖÅÎÉÉ ÏÂßÅËÔÁ ×ÓÅÍ DT>> ÕËÁÚÁÔÅÌÑÍ ÎÁ ÜÔÏÔ ÏÂßÅËÔ ÄÏÌÖÎÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉÓ×ÁÉ×ÁÔØÓÑ ÚÎÁÞÅÎÉÅ DT>> nil. ëÏÎÅÞÎÏ, ÔÒÅÂÕÅÔ ÒÁÎÔÁÊÍ-ÐÏÄÄÅÒÖËÉ, ÎÏ ÏÞÅÎØ ÓÕÝÅÓÔ×ÅÎÎÏ.

AM> ôÙ ÐÒÅÄÓÔÁ×ÌÑÅÛØ, ËÁËÕÀ ÃÅÎÕ ÚÁ ÜÔÏ ÐÒÉÄÅÔÓÑ ÐÌÁÔÉÔØ? üÔÏ ÐÏÌÕÞÁÅÔÓÑ, AM> ÞÔÏ _ËÁÖÄÙÊ_ ÏÂßÅËÔ ÄÏÌÖÅÎ ËÒÏÍÅ Ó×ÏÅÇÏ ÚÎÁÞÅÎÉÑ ÈÒÁÎÉÔØ ÄÉÎÁÍÉÞÅÓËÉ AM> ÉÚÍÅÎÑÅÍÙÊ ÓÐÉÓÏË ÕËÁÚÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÎÁ ÎÅÇÏ ÕËÁÚÙ×ÁÀÔ.

÷Ï-ÐÅÒ×ÙÈ, ÎÅ ËÁÖÄÙÊ, Á ÔÏÌØËÏ ÄÉÎÁÍÉÞÅÓËÉÅ ÉÌÉ Á×ÔÏÍÁÔÉÞÅÓËÉÅ ÏÂßÅËÔÙ. íÏÖÎÏ ÚÁÐÒÅÔÉÔØ ×ÚÑÔÉÅ ÁÄÒÅÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉÈ ÏÂßÅËÔÏ×, ÜÔÏ ÓÉÌØÎÏ ÕÐÒÏÓÔÉÔ ÚÁÄÁÞÕ, Á ÎÅ ÔÅÒÑÅÍ ÍÙ ÎÉÞÅÇÏ. ÷Ï-×ÔÏÒÙÈ, ÚÁ×ÏÄÉÔØ ÔÁËÏÊ ÓÐÉÓÏË ÎÁÄÏ ÔÏÌØËÏ ÐÏ ÆÁËÔÕ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÁÄÒÅÓÁ ÏÂßÅËÔÁ ÐÅÒÅÍÅÎÎÏÊ ÓÓÙÌÏÞÎÏÇÏ ÔÉÐÁ. ÷ áÄÅ ÅÓÔØ ÄÁÖÅ ÓÐÅÃÉÁÌØÎÏÅ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï - aliased - ÄÌÑ ÎÅ-ÄÉÎÁÍÉÞÅÓËÉÈ ÏÂßÅËÔÏ×, ÎÁ ËÏÔÏÒÙÅ _ÍÏÇÕÔ_ ÕËÁÚÙ×ÁÔØ ÓÓÙÌËÉ. äÕÍÁÀ, ÄÌÑ ÓÉÓÔÅÍ ËÌÁÓÓÁ PC ÜÔÏ ÓÏ×ÓÅÍ ÎÅÂÏÌØÛÁÑ ÃÅÎÁ. ó ÕޣÔÏÍ ÍÏÎÓÔÒÏÉÄÁÌØÎÏÓÔÉ ÔÅÐÅÒÅÛÎÅÇÏ ÓÏÆÔÁ. HÕ Á ÄÌÑ ÍÅÌËÉÈ ×ÓÔÒÏÅÎÎÙÈ ÓÉÓÔÅÍ ÜÔÏ, ËÏÎÅÞÎÏ, ÐÏËÁ ÒÁÎÏ×ÁÔÏ. ôÕÔ É C++ ÓÌÉÛËÏÍ ÍÎÏÇÏ. :)

DT>> :) ôÏÌØËÏ Ó ÔÁËÉÍ ÕÓÌÏ×ÉÅÍ: DT>> int f(TObject * const z) DT>> ôÏ ÅÓÔØ ÄÏÌÖÎÏ ÂÙÔØ ÚÁÐÒÅÝÅÎÏ ÍÅÎÑÔØ ÚÎÁÞÅÎÉÅ z × ÔÅÌÅ ÆÕÎËÃÉÉ.

AM> ðÏÞÅÍÕ? áÒÇÕÍÅÎÔÉÒÕÊ, ÐÏÖÁÌÕÊÓÔÁ.

âÅÚÏÐÁÓÎÏÓÔØ. é, × ÏÂÝÅÍ ÓÌÕÞÁÅ, ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÐÁÒÁÄÉÇÍÅ, ÏÐÉÓÁÎÎÏÊ ×ÙÛÅ: ÕËÁÚÁÔÅÌÉ - ÎÅÂÅÚÏÐÁÓÎÏÅ ÓÒÅÄÓÔ×Ï, É ÄÏÌÖÎÙ ÐÒÉÍÅÎÑÔØÓÑ Ó ÐÒÅÄÏÓÔÏÒÏÖÎÏÓÔÑÍÉ É ÔÏÌØËÏ ÔÁÍ, ÇÄÅ ÂÅÚ ÎÉÈ ÎÅÌØÚÑ ÏÂÏÊÔÉÓØ. ëÏÎËÒÅÔÎÏ - ÐÒÉ ÒÁÂÏÔÅ Ó ÄÉÎÁÍÉÞÅÓËÉÍÉ ÏÂßÅËÔÁÍÉ. ñ ÓÏÇÌÁÓÉÌÓÑ Ó ÔÏÂÏÊ, ÞÔÏ ÌÕÞÛÅ ÐÅÒÅÄÁ×ÁÔØ ÏÂßÅËÔÙ, ËÏÔÏÒÙÅ ÍÙ ÓÏÂÉÒÁÅÍÓÑ ÍÅÎÑÔØ ÉÚ ÔÅÌÁ ÆÕÎËÃÉÉ, ÐÏ ÕËÁÚÁÔÅÌÀ - ÎÏ ÔÏÌØËÏ ÐÏÔÏÍÕ, ÞÔÏ ÜÔÏ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÉÚÂÙÔÏÞÎÏÓÔØ ÓÉÎÔÁËÓÉÓÁ: ÍÙ ×ÉÄÉÍ, ÞÔÏ ÜÔÏÔ ÐÁÒÁÍÅÔÒ ÄÏÐÕÓËÁÅÔ ÉÚÍÅÎÅÎÉÅ ÆÁËÔÉÞÅÓËÏÇÏ ÁÒÇÕÍÅÎÔÁ, Á ×ÏÔ ÜÔÏÔ - ÎÅÔ. HÏ ÓÁÍ ÕËÁÚÁÔÅÌØ ÄÏÌÖÅÎ ÐÒÉ ÜÔÏÍ ÂÙÔØ ÍÁËÓÉÍÁÌØÎÏ ÐÏÈÏÖ ÎÁ ÓÉÛÎÕÀ ÓÓÙÌËÕ. :)

DT>> á Åݣ ÈÏÒÏÛÁÑ ÆÉÞÁ ÅÓÔØ × ÍÁÔÌÁÂÏ×ÓËÏÍ M-ÑÚÙËÅ: DT>> function [x, y, z] = SomeFunction (a, b, c) DT>> é ÎÅ ÎÁÄÏ ÎÉËÁËÏÊ ÐÅÒÅÄÁÞÉ ÐÏ ÓÓÙÌËÅ. :)

AM> á ÞÔÏ ÜÔÁ ÆÉÞÁ ÄÅÌÁÅÔ?

á ×ÏÚ×ÒÁÝÁÅÔ ÎÅÓËÏÌØËÏ ÒÅÚÕÌØÔÁÔÏ× ÉÚ ÆÕÎËÃÉÉ. ÷ áÄÅ, ËÓÔÁÔÉ, ÔÏÖÅ ÅÓÔØ ÔÁËÏÅ

- ÁÇÒÅÇÁÔÙ. M-ÑÚÙË, ËÓÔÁÔÉ, ÚÁÂÁ×ÎÁÑ ×ÅÝØ. ÷ÓÅ ÏÂßÅËÔÙ ÔÁÍ ÐÏ ÕÍÏÌÞÁÎÉÀ - ÍÁÔÒÉÃÙ, É ÄÁÖÅ ÓËÁÌÑÒ - ÜÔÏ ÍÁÔÒÉÃÁ ÒÁÚÍÅÒÏÍ 1x1. :) áÒÉÆÍÅÔÉÞÅÓËÉÅ ÏÐÅÒÁÃÉÉ ÔÏÖÅ ÍÏÖÎÏ ÐÒÏÉÚ×ÏÄÉÔØ ÎÁÄ ÍÁÔÒÉÃÅÊ ÃÅÌÉËÏÍ.

Dimmy.

Hello Alex.

Thu Nov 03 2005 17:01, Alex Mogilnikov wrote to Harry Zhurov:

HZ>> ëÏÇÄÁ ×ÉÄÉÛØ f(var) - ÎÉÆÉÇÁ ÎÅ ÑÓÎÏ, ÞÔÏ var - ÜÔÏ ÍÁÓÓÉ×. :-ò

AM> HÅ ÐÏÎÑÌ. ôÏ ÅÓÔØ ÄÁ, ÚÄÅÓØ ÎÅ ×ÉÄÎÏ. á ËÁË ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÂÙÌÏ AM> ÓÒÁÚÕ ×ÉÄÎÏ, ÞÔÏ var - ÜÔÏ ÍÁÓÓÉ×?

á ÄÌÑ ÜÔÏÇÏ ÎÕÖÎÁ ֣ÓÔËÁÑ ÐÒÏ×ÅÒËÁ ÔÉÐÏ×. :) é ÔÏÇÄÁ ËÏÍÐÉÌÑÔÏÒ ÔÅÂÅ ×ӣ ÒÁÓÓËÁÖÅÔ.

Dimmy.

Hello Harry.

03 Nov 05 08:21, Harry Zhurov wrote to Alex Mogilnikov:

HZ> HÅ ÐÏÎÑÌ, × ÞÅÍ ÔÅÂÅ ×ÉÄÉÔÓÑ ÐÒÅÉÍÕÝÅÓÔ×Ï ÕËÁÚÁÔÅÌÑ. åÓÌÉ ÆÕÎËÃÉÑ HZ> ÐÏ ÎÅ ÄÏÌÖÎÁ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ÏÂßÅËÔ, ÔÏ ÐÅÒÅÄÁ×ÁÔØ ÎÁÄÏ ËÏÎÓÔÁÎÔÎÕÀ HZ> ÓÓÙÌËÕ. óÓÙÌËÁ × ÏÔÌÉÞÉÅ ÏÔ ÕËÁÚÁÔÅÌÑ ÎÅ ÍÏÖÅÔ ÓÓÙÌÁÔØÓÑ ÎÁ HZ> ÎÅÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ.

äÁ-ÄÁ

CMyClass *p = new CMyClass; CMyClass &r = *p; delete p;

&r.something() //??? ÉÌÉ ËÌÁÓÓÉÞÅÓËÉÊ ÓÌÕÞÁÊ:

CMyClass& Foo() { CMyClass var; return var; }

ó ÎÅËÏÔÏÒÏÊ ÎÁÔÑÖËÏÊ ÎÁ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ ÎÅ ÍÏÖÅÔ ÓÓÙÌÁÔØÓÑ ÞÔÏ-ÔÏ ÔÉÐÁ auto_ptr ÉÌÉ ËÁË ÅÇÏ ÔÁÍ. á ÐÒÏ ÓÓÙÌËÕ ÇÏ×ÏÒÉÔÓÑ ÔÏÌØËÏ ÔÏ, ÞÔÏ ÅÅ ÎÅÌØÚÑ ÓÏÚÄÁÔØ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÏÊ.

Dmitry

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Alex Mogilnikov on Thu, 03 Nov 2005 06:32:02

+0300:

DT> Всё очень просто:

DT> 1) nil не разыменовывается, runtume-проверка;

Не хочу никаких рантайм проверок. Если мне надо, я сам могу это написать.

DT> 2) у указателя должен быть тип и тип этот должен проверяться;

Это и так есть.

DT> 3) не должно быть "адресной арифметики" кроме присваивания DT> указателю значения и сравнения указателей;

Не удобно в практической жизни.

DT> 4) указателю можно присвоить значение nil, значение, DT> возвращаемое оператором new и значение "адреса" существующего DT> объекта (&var);

Потом объект перестал существовать, и что?

DT> 5) при уничтожении объекта всем указателям на этот объект DT> должно автоматически присваиваться значение nil.

Как это вообще можно сделать?

DT> Конечно, требует рантайм-поддержки, но очень существенно.

Ничего себе поддержечка... Лично мне такой язык не нужен.

dima

formatting link

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Kirill Frolov on Thu, 03 Nov 2005 11:04:35

+0300:

q>> Careful C programmers can produce safe C programs, but, in q>> practice, many C programs are unsafe.

DT> А попробуй это объяснить некоторым любителям свободы...

Объяснить довольно просто - показать в количестве написанный на этих safe средствах прикладной и системный софт.

dima

formatting link

Thu Nov 03 2005 20:09, Dmitry Orlov wrote to Dimmy Timchenko:

DT>> 5) ÐÒÉ ÕÎÉÞÔÏÖÅÎÉÉ ÏÂßÅËÔÁ ×ÓÅÍ ÕËÁÚÁÔÅÌÑÍ ÎÁ ÜÔÏÔ ÏÂßÅËÔ DT>> ÄÏÌÖÎÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉÓ×ÁÉ×ÁÔØÓÑ ÚÎÁÞÅÎÉÅ nil. DO> ëÁË ÜÔÏ ×ÏÏÂÝÅ ÍÏÖÎÏ ÓÄÅÌÁÔØ?

ñÚÙË ÂÅÚ ÕËÁÚÁÔÅÌÅÊ ×ÏÏÂÝÅ É/ÉÌÉ ×ÓÑ ÒÁÂÏÔÁ ÞÅÒÅÚ ÈÅÎÄÌÙ.

DT>> ëÏÎÅÞÎÏ, ÔÒÅÂÕÅÔ ÒÁÎÔÁÊÍ-ÐÏÄÄÅÒÖËÉ, ÎÏ ÏÞÅÎØ ÓÕÝÅÓÔ×ÅÎÎÏ. DO> HÉÞÅÇÏ ÓÅÂÅ ÐÏÄÄÅÒÖÅÞËÁ... ìÉÞÎÏ ÍÎÅ ÔÁËÏÊ ÑÚÙË ÎÅ ÎÕÖÅÎ.

ôÁËÏÊ ÑÚÙË ÄÁ×ÎÏ ÐÒÉÄÕÍÁÎ. HÁÚÙ×ÁÅÔÓÑ Java.

VLV

"úÁ ÌÕÞÛÅÇÏ ÉÚ ÈÏÂÂÉÔÏ× - çÁÒÒÉ ðÏÔÔÅÒÁ!"

Hello, Andrey Solomatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 3 Nov 2005 09:59:29

+0000 (UTC):

AS> [кусь] AS>>> *Не* совершенно разные, а очень даже похожие. На то, что

DO>> Похожие, но _совершенно_ разные. Как и числа собственно.

AS> Значит в этом вопросе мы не сойдёмся. AS> Все команды типа add изначально появились для выполнения AS> операции сложения. Ещё в те времена, когда дополнительного AS> представления числа не существовало - и даже тогда, когда не AS> все компьютеры были двоичными.

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

AS> [кусь] AS>>> Ну значит он и там есть - от чего инкрементация "на sizeof" AS>>> безопаснее не делается.

DO>> Делается. В ТР за этим надо ручками следить.

AS> Ты упёрся. Второй круг.

Во что уперся?

AS> int i; AS> int *p = &i; /* здесь указатель вполне валиден */

AS> .... /* здесь может делаться любой код */

AS> p = p + 1000; /* а вот здесь мы "совершенно безопасно" куда-то AS> уползли. */

И что? В ТР ты можешь сделать совершенно тоже самое, только хуже, потому что можешь попасть не только в чужую память, но и в середину какого-то объекта.

AS>>> Система калибровки.

DO>> Система калибровки чего?

AS> А это важно?

Нет, важно, что это не шаблон вывода.

DO>> Выглядит как типичная абракадабра, и ничем не лучше сишных DO>> шаблонов для printf.

AS> (Пожимая плечами) Это индустриальный стандарт.

А типа С - не стандарт, причем куда более распространенных, чем какие-то ЭСУД (я даже с аббревиатурой такой не знаком).

AS> Я вот только не понял - как Вы собираетесь выводить через AS> printf массивы, и как смещать и нормировать величину будем

Какие массивы и что нормировать?

AS> (потому, что 0x10 на самом деле может означать +2С, к примеру)?

0x10 где? В шаблоне printf?

DO>> И зачем мне на экране десяток ничего не значащих цифр?

AS> Это последнее, от чего голова болит у калибровщиков.

Да мне как-то до твоих калибровщиков ну совершенно нету дела.

AS>>> От чего-то. И как сюда присобачить (x)printf мне не ведомо.

DO>> Тебе много чего не ведомо...

AS> Ну так расскажите.

Так спросите.

DO>> Значит документированная ошибка. Не пользуйся, хотя по-моему DO>> от этих полей толку чуть.

AS> Угу. Куда-ж я денусь.

Куда хочешь.

AS> А толк - в возможности написания ясного, компактного и легко AS> модифицимруемого кода.

Не вижу чем a.b = 3 лучше a |= 3 < Для меня лично, по крайней мере.

dima

formatting link

Hello, Vladimir Vassilevsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 03 Nov 2005 21:16:41

+0300:

DT>>> 5) при уничтожении объекта всем указателям на этот объект DT>>> должно автоматически присваиваться значение nil. DO>> Как это вообще можно сделать?

VV> Язык без указателей вообще и/или вся работа через хендлы.

DT>>> Конечно, требует рантайм-поддержки, но очень существенно. DO>> Hичего себе поддержечка... Лично мне такой язык не нужен.

VV> Такой язык давно придуман. Hазывается Java.

Вот она мне и не нужна. Не вижу смысла без острой необходимости плодить сущности.

dima

formatting link

Привет, Dimmy !

01 Nov 05 , 21:58 Dimmy Timchenko писал к Kirill Frolov:

DT> Да при чём тут нечисла? Корень из нуля равен нулю, корень из малой DT> величины будет _больше_ этой величины. Вполне себе числа. Проверил DT> на BP7 - считает правильно.

Я во времена первых 486-х компьютеров в школе писал на паскале программу для рассчета и показа множества мандельброта. алгоритм - Z -> Z^2+Z_0, где Z_0 начальное значение, Z комплексное число, алгоритм - Z -> количество итераций, после которого Z уходит в бесконечность алгоритм - Z -> (точнее, становится по модулю больше двух) - цвет точки с алгоритм - Z -> координатами Z. В некоторых координатах оно как раз с алгоритм - Z -> антипереполнением вылетало.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Hаверное ему швея под хвост попала

Hello Nickita.

03 Nov 05 22:07, you wrote to Dimmy Timchenko:

DT>> Да при чём тут нечисла? Корень из нуля равен нулю, корень из DT>> малой величины будет _больше_ этой величины. Вполне себе числа. DT>> Проверил на BP7 - считает правильно.

NS> Я во времена первых 486-х компьютеров в школе писал на паскале NS> программу для рассчета и показа множества мандельброта. алгоритм - Z NS> -> Z^2+Z_0, где Z_0 начальное значение, Z комплексное число, NS> количество итераций, после которого Z уходит в бесконечность (точнее, NS> становится по модулю больше двух) - цвет точки с координатами Z. В NS> некоторых координатах оно как раз с антипереполнением вылетало.

Hормальные девелоперы не размышляют, "будет оно работать или нет", а пишут систему тестов, которая, кстати, может быть сложней и развесистей, чем рабочий код. И вместе с метриками test coverage подшивают у проектной документации. Делать это или нет зависит от того, насколько сильно будут иметь исполнителя заказчики, если написанная пионерами кривая программа вызовет нехорошие последствия при подаче на вход -1 вместо 0.

Dmitry

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

óÒÅÄÁ HÏÑÂÒØ 02 2005 20:37, Alex Mogilnikov wrote to Dimmy Timchenko:

DT>> ñ ÇÏ×ÏÒÀ ÎÅ ÔÏÌØËÏ Ï ÔÉÐÅ, Á Ï ËÏÎËÒÅÔÎÏÍ ÏÂßÅËÔÅ. åÓÌÉ ÓÓÙÌËÁ DT>> ÎÅ ÕËÁÚÙ×ÁÅÔ ÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ, ÜÔÏ ÄÏÌÖÎÏ ×ÏÓÐÒÉÎÉÍÁÔØÓÑ, DT>> ËÁË ÏÛÉÂËÁ. AM> "óÓÙÌËÁ" × ÓÍÙÓÌÅ "ÓÉÛÎÙÊ ÕËÁÚÁÔÅÌØ"? ÷ÏÚØÍÅÍ Ë ÐÒÉÍÅÒÕ ÕËÁÚÁÔÅÌØ AM> ÓÌÅÄÕÀÝÉÅÇÏ ÏÂßÅËÔÁ × ÜÌÅÍÅÎÔÅ Ó×ÑÚÁÎÎÏÇÏ ÓÐÉÓËÁ. óÌÅÄÕÀÝÉÊ ÏÂßÅËÔ AM> ÍÏÖÅÔ ÎÅ ÓÕÝÅÓÔ×Ï×ÁÔØ. HÁ ËÁËÏÊ ÏÂßÅËÔ ÐÏ-Ô×ÏÅÍÕ ÄÏÌÖÅÎ ÕËÁÚÙ×ÁÔØ AM> ÕËÁÚÁÔÅÌØ ÓÌÅÄÕÀÝÅÇÏ ÏÂßÅËÔÁ ÐÒÉ ÏÔÓÕÔÓÔ×ÉÉ ÓÌÅÄÕÀÝÅÇÏ ÏÂßÅËÔÁ? äÏÌÖÎÏ AM> ÌÉ ÏÔÓÕÔÓÔ×ÉÅ ÓÌÅÄÕÀÝÅÇÏ ÏÂßÅËÔÁ ×ÏÓÐÒÉÎÉÍÁÔØÓÑ ËÁË ÏÛÉÂËÁ?

óÏÇÌÁÓÎÏ ËÏÎÃÅÐÃÉÑÍ É ÄÕÈÕ ïïð - ËÏÎÅÞÎÏ ÄÏÌÖÎÏ!

çÅÏÒÇÉÊ

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

þÅÔ×ÅÒÇ HÏÑÂÒØ 03 2005 01:50, Kirill Frolov wrote to George Shepelev:

GS>>>>>>>> òÅÞØ, ËÓÔÁÔÉ, ÛÌÁ ÓÏ×ÅpÛÅÎÎÏ ÎÅ Ï ÜÔÏÍ, Á Ï ÔpÕÄÎÏÓÔÉ GS>>>>>>>> ×ÓÔÁ×ÉÔØ ÎÁÇÌÑÄÎÙÊ ËÏÍÍÅÎÔÁpÉÊ × "ËÏÍÐÁËÔÎÕÀ" ÓÉÛÎÕÀ GS>>>>>>>> ËÏÎÓÔpÕËÃÉÀ (ÚÁÞÅÍ, Ë ÐpÉÍÅpÕ, ÉÚÏÂpÅÌÉ "ÏÐÅpÁÔÏp GS>>>>>>>> ÚÁÐÑÔÁÑ"?). KF>>> function((blablabla /* commentarijj */, blablabla) /* KF>>> commentarijj */, KF>>> blablabla); KF> HÕ ÔÁË ×ÓÔÁ×ÉÔØ ËÏÍÍÅÎÔÁÒÉÊ ÖÅ ÍÏÚÎÏ.

"íÏÚÎÏ". HÏ ×ÙÇÌÑÄÉÔ ÐÒÅÐÁÓËÕÄÎÏ.

GS>> ðÏÔÏË ÓÏÚÎÁÎÉÑ - ËÁÛÁ × ÇÏÌÏ×Å ÐÒÏÇÒÁÍÉÓÔÁ ;) KF> üÔÏ ÎÅ ËÁÛÁ, ÜÔÏ hyperthreading.

;)))

GS>>>> á ÎÅ × ËÕÄÁ! ðÏÐÁÄÁÀÔÓÑ ÞÒÅÚ×ÙÞÁÊÎÏ "ÎÁ×ÏÒÏÞÅÎÎÙÅ" GS>>>> ËÏÎÓÔÒÕËÃÉÉ, ËÏÔÏÒÙÅ ËÁÚÁÌÉÓØ Á×ÔÏÒÙ ÜÆÆÅËÔÉ×ÎÙÍÉ. HÏ ÐÏÓÌÅ GS>>>> ÏÐÉÓÁÎÉÑ ÓÔÁÎÏ×ÑÔÓÑ ÐÒÁËÔÉÞÅÓËÉ ÎÅÞÉÔÁÂÅÌØÎÙÍÉ :-/ KF>>> ôÅËÓÔ ÐÒÏÇÒÁÍÍÙ ÎÕÖÅÎ ÄÌÑ ÐÒÏÞÔÅÎÉÑ ÅÇÏ ËÏÍÐÉÌÑÔÏÒÏÍ. GS>> ôÙ ÞÔÏ, ÎÉËÏÇÄÁ ÎÅ ÚÁÎÉÍÁÅÛØÓÑ ÏÔÌÁÄËÏÊ É ÓÏÐÒÏ×ÏÖÄÅÎÉÅÍ ÓÏÆÔÁ? GS>> âÅÚ ÜÔÏÇÏ ÎÏÒÍÁÌØÎÏÇÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÅ ÂÙ×ÁÅÔ... KF> ôÅÍ ÎÅ ÍÅÎÅÅ, Íϣ ÕÔ×ÅÒÖÄÅÎÉÅ ÌÏÖÎÙÍ ÏÔ ÜÔÏÇÏ ÎÅ ÓÔÁÎÏ×ÉÔÓÑ.

ô×ϣ ÏÐÒÅÄÅÌÅÎÉÅ ÐÒÅËÒÁÓÎÏ ÐÏÄÈÏÄÉÔ ÄÌÑ write only ÔÅËÓÔÁ. ô.Å. ÄÌÑ ÏÞÅÎØ ÐÌÏÈÏÇÏ ÓÔÉÌÑ, ËÏÔÏÒÙÊ ÎÅ ÓÔÏÉÔ ÐÒÏÐÁÇÁÎÄÉÒÏ×ÁÔØ...

KF> ÷Ï-ÐÅÒ×ÙÈ ÔÅËÓÔ ÐÒÏÇÒÁÍÍÙ ÎÅ Ñ×ÌÑÅÔÓÑ ÏÐÒÅÄÅÌÑÀÝÉÍ -- ÜÔÏ ÌÉÛ KF> ÆÏÒÍÁ ÚÁÐÉÓÉ ÎÁ ÂÏÌÅÅ ÄÒÕÇÏÍ, ÍÁÛÉÎÎÎÏÍ, ÑÚÙËÅ, ÐÅÒÅ×ÏÄ.

ñ×ÌÑÅÔÓÑ. ó ÎÉÍ ÎÁÄÏ ÒÁÂÏÔÁÔØ - ÓÔÁÌÏ ÂÙÔØ ÐÏÎÉÍÁÔØ ÅÇÏ ÂÙÓÔÒÏ É ÏÄÎÏÚÎÁÞÎÏ.

KF> HÁÄÏ ÐÏÎÉÍÁÔØ -- ÂÙ×ÁÅÔ write-only. ÷Ï×ÓÅ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ôïìøëï KF> write-only. HÅ ÎÁÄÏ ÉÚ ÏÄÎÏÊ ËÒÁÊÎÏÓÔÉ × ÄÒÕÇÕÀ ÂÒÏÓÁÔØÓÑ.

HÅÔÕ ËÒÁÊÎÏÓÔÉ. ëÁÖÄÁÑ ÍÉÎÕÔÁ, ÐÏÔÒÁÞÅÎÎÁÑ ÎÁ _ËÁÞÅÓÔ×ÅÎÎÏÅ_ ÏÆÏÒÍÌÅÎÉÅ ÔÅËÓÔÁ ×ÁÖÎÏÊ ÐÒÏÇÒÁÍÍÙ, ÐÏÚÖÅ ÏËÕÐÁÅÔÓÑ ÏÇÒÏÍÎÙÍ ËÏÌÉÞÅÓÔ×ÏÍ ×ÒÅÍÅÎÉ. ÷Ï ×ÒÅÍÑ ÏÔÌÁÄËÉ É ÓÏÐÒÏ×ÏÖÄÅÎÉÑ.

çÅÏÒÇÉÊ

Hello Dmitry.

Thu Nov 03 2005 21:13, Dmitry Orlov wrote to me:

q>>> Careful C programmers can produce safe C programs, but, in q>>> practice, many C programs are unsafe.

DT>> á ÐÏÐÒÏÂÕÊ ÜÔÏ ÏÂßÑÓÎÉÔØ ÎÅËÏÔÏÒÙÍ ÌÀÂÉÔÅÌÑÍ Ó×ÏÂÏÄÙ...

DO> ïÂßÑÓÎÉÔØ ÄÏ×ÏÌØÎÏ ÐÒÏÓÔÏ - ÐÏËÁÚÁÔØ × ËÏÌÉÞÅÓÔ×Å ÎÁÐÉÓÁÎÎÙÊ ÎÁ ÜÔÉÈ DO> safe ÓÒÅÄÓÔ×ÁÈ ÐÒÉËÌÁÄÎÏÊ É ÓÉÓÔÅÍÎÙÊ ÓÏÆÔ.

äÉÍÁ, ÉÚ×ÉÎÉ, ÎÏ, ÍÏÖÅÔ, È×ÁÔÉÔ ÐÒÉÍÉÔÉ×ÎÏ ÐÅÒÅģÒÇÉ×ÁÔØ? ôÙ ÐÒÅËÒÁÓÎÏ ÚÎÁÅÛØ ÐÒÉÞÉÎÙ ÔÁËÏÇÏ ÛÉÒÏËÏÇÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ C. ðÒÉÍÅÒÎÏ ÔÅ ÖÅ ÐÒÉÞÉÎÙ, ÞÔÏ É Ó PC É x86-ÁÒÈÉÔÅËÔÕÒÏÊ.

Dimmy.

Fri Nov 04 2005 01:45, Dimmy Timchenko wrote to Dmitry Orlov:

q>>>> Careful C programmers can produce safe C programs, but, in q>>>> practice, many C programs are unsafe.

DT>>> á ÐÏÐÒÏÂÕÊ ÜÔÏ ÏÂßÑÓÎÉÔØ ÎÅËÏÔÏÒÙÍ ÌÀÂÉÔÅÌÑÍ Ó×ÏÂÏÄÙ...

DO>> ïÂßÑÓÎÉÔØ ÄÏ×ÏÌØÎÏ ÐÒÏÓÔÏ - ÐÏËÁÚÁÔØ × ËÏÌÉÞÅÓÔ×Å ÎÁÐÉÓÁÎÎÙÊ ÎÁ ÜÔÉÈ DO>> safe ÓÒÅÄÓÔ×ÁÈ ÐÒÉËÌÁÄÎÏÊ É ÓÉÓÔÅÍÎÙÊ ÓÏÆÔ.

DT> äÉÍÁ, ÉÚ×ÉÎÉ, ÎÏ, ÍÏÖÅÔ, È×ÁÔÉÔ ÐÒÉÍÉÔÉ×ÎÏ ÐÅÒÅģÒÇÉ×ÁÔØ? ôÙ ÐÒÅËÒÁÓÎÏ DT> ÚÎÁÅÛØ ÐÒÉÞÉÎÙ ÔÁËÏÇÏ ÛÉÒÏËÏÇÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ C. ðÒÉÍÅÒÎÏ ÔÅ ÖÅ DT> ÐÒÉÞÉÎÙ, ÞÔÏ É Ó PC É x86-ÁÒÈÉÔÅËÔÕÒÏÊ.

ëÏÍÍÅÒÞÅÓËÁÑ ÕÓÐÅÛÎÏÓÔØ?

Thu, 03 Nov 2005 19:43:31 +0300 Dmitry Lyokhin wrote to Harry Zhurov:

HZ>> HÅ ÐÏÎÑÌ, × ÞÅÍ ÔÅÂÅ ×ÉÄÉÔÓÑ ÐÒÅÉÍÕÝÅÓÔ×Ï ÕËÁÚÁÔÅÌÑ. åÓÌÉ ÆÕÎËÃÉÑ HZ>> ÐÏ ÎÅ ÄÏÌÖÎÁ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ÏÂßÅËÔ, ÔÏ ÐÅÒÅÄÁ×ÁÔØ ÎÁÄÏ ËÏÎÓÔÁÎÔÎÕÀ HZ>> ÓÓÙÌËÕ. óÓÙÌËÁ × ÏÔÌÉÞÉÅ ÏÔ ÕËÁÚÁÔÅÌÑ ÎÅ ÍÏÖÅÔ ÓÓÙÌÁÔØÓÑ ÎÁ HZ>> ÎÅÓÕÝÅÓÔ×ÕÀÝÉÊ ÏÂßÅËÔ.

DL> äÁ-ÄÁ

DL> CMyClass *p = new CMyClass; DL> CMyClass &r = *p; DL> delete p;

ñ ÚÎÁÀ É ÐÏÍÎÉÌ ÐÒÏ ÜÔÉ ÏÔÄÅÌØÎÙÅ ÓÌÕÞÁÉ, ÎÏ ÎÅ ÒÁÓÓÞÉÔÙ×ÁÌ, ÞÔÏ ÔÕÔ ×ÐÒÑÇÕÔÓÑ ÚÎÁÔÏËÉ. :) âÅÚÕÓÌÏ×ÎÏ, ÐÁÎÁÃÅÉ ÎÅÔ. ñ ÌÉÛØ ÉÍÅÌ × ×ÉÄÕ ÓÉÔÕÁÃÉÀ, ÞÔÏ ÓÓÙÌËÕ ÎÅÌØÚÑ ÓÏÚÄÁÔØ ÄÌÑ ÎÅÓÕÝÅÓÔ×ÕÀÝÅÇÏ ÏÂßÅËÔÁ. ÷ ÏÔÌÉÞÉÅ ÏÔ ÕËÁÚÁÔÅÌÑ.

DL> ÉÌÉ ËÌÁÓÓÉÞÅÓËÉÊ ÓÌÕÞÁÊ:

DL> CMyClass& Foo() DL> { DL> CMyClass var; DL> return var; DL> }

é ÎÅ ÍÅÎÅÅ (Á ÄÁÖÅ ÂÏÌÅÅ) ËÌÁÓÓÉÞÅÓËÉÊ ÓÌÕÞÁÊ (É ÂÏÌÅÅ ÄÒÅ×ÎÉÊ, ÓÏ ×ÒÅÍÅÎ ó):

CMyClass* Foo() { CMyClass var; return &var; }

÷ ÉÔÏÇÅ, ÓÓÙÌËÁ × ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ×ÓÅ ÖÅ ÂÅÚÏÐÁÓÎÅÅ × ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÎÅÖÅÌÉ ÕËÁÚÁÔÅÌØ.

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 04 Nov 2005 02:45:51

+0300:

q>>>> Careful C programmers can produce safe C programs, but, in q>>>> practice, many C programs are unsafe.

DT>>> А попробуй это объяснить некоторым любителям свободы...

DO>> Объяснить довольно просто - показать в количестве написанный DO>> на этих safe средствах прикладной и системный софт.

DT> Дима, извини, но, может, хватит примитивно передёргивать? Ты DT> прекрасно знаешь причины такого широкого распространения C.

Знаю. Это удачное сочетание свойств языка и ничего более.

DT> Примерно те же причины, что и с PC и x86-архитектурой.

Основные причины распространенности РС - открытость архитектуры ну и конечно удачное сочетание возможностей и цены. Прямого отношения к языками программирования это не имеет.

dima

formatting link

Hello Yuriy.

Fri Nov 04 2005 07:04, Yuriy K wrote to me:

DT>> ÐÒÅËÒÁÓÎÏ ÚÎÁÅÛØ ÐÒÉÞÉÎÙ ÔÁËÏÇÏ ÛÉÒÏËÏÇÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ C. ðÒÉÍÅÒÎÏ DT>> ÔÅ ÖÅ ÐÒÉÞÉÎÙ, ÞÔÏ É Ó PC É x86-ÁÒÈÉÔÅËÔÕÒÏÊ.

YK> ëÏÍÍÅÒÞÅÓËÁÑ ÕÓÐÅÛÎÏÓÔØ?

÷ ÏÂÝÅÍ, ÐÒÉÞÉÎÙ ÓÏÃÉÁÌØÎÏ-ÐÓÉÈÏÌÏÇÉÞÅÓËÉÅ, Á ÎÅ ×ÏÐÒÏÓÙ ËÁÞÅÓÔ×Á É ÔÅÈÎÉÞÅÓËÏÇÏ ÓÏ×ÅÒÛÅÎÓÔ×Á. :) á äÉÍÁ ÇÏ×ÏÒÉÔ ÐÒÉÍÅÒÎÏ ÜÔÏ: ÒÁÚ ÏÎÏ ÔÁË ÒÁÚÒÏÓÌÏÓØ - ÚÎÁÞÉÔ, ÓÁÍÏÅ ÈÏÒÏÛÅÅ.

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