Лишние сущности?
От: WinterMute Россия http://yarrr.ru
Дата: 14.03.05 22:15
Оценка:
Объясните, за что MS так любит определять типы-сателлиты, например: BYTE и LPBYTE (вместо BYTE*) + LPCBYTE вместо const BYTE*. Откуда такая нелюбовь к оператору "*"?

Печально что привычка укрепляется в неокрепших умах молодых программистов, которые пишут код "на-гора", читать же его потом -- глаза сломаешь.

Впрочем может я не проникся идеей, поясните, в чем от таких сокращений может быть радость.
Re: Лишние сущности?
От: Sergey Россия  
Дата: 15.03.05 07:44
Оценка: :)
Hello, WinterMute!
You wrote on Mon, 14 Mar 2005 22:15:45 GMT:

W> Объясните, за что MS так любит определять типы-сателлиты, например: BYTE

W> и LPBYTE (вместо BYTE*) + LPCBYTE вместо const BYTE*.
W> Откуда такая нелюбовь к оператору "*"?

Это, IMHO, чтобы не думалось, надо писать struct или не надо.

W> Печально что привычка укрепляется в неокрепших умах молодых

W> программистов, которые пишут код "на-гора", читать же его потом -- глаза
W> сломаешь.

Угу, есть такая особенность.

W> Впрочем может я не проникся идеей, поясните, в чем от таких сокращений

W> может быть радость.

Радость от них очень простая — неокрепшим умам молодых программистов,
пользуясь такими тайпдефами, вполне по силам изобразить, скажем, ссылку на
указатель. Что без тайпдефов практически не реально — в скобках запутаются.

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[2]: Лишние сущности?
От: ussr  
Дата: 15.03.05 07:52
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Радость от них очень простая — неокрепшим умам молодых программистов,

S>пользуясь такими тайпдефами, вполне по силам изобразить, скажем, ссылку на
S>указатель
. Что без тайпдефов практически не реально — в скобках запутаются.

где там скобки?
    register volatile struct tm *&t = t0;

даже в таком изврате нет никаких скобок
Re: Лишние сущности?
От: dshe  
Дата: 15.03.05 08:18
Оценка: 1 (1) +3
Здравствуйте, WinterMute, Вы писали:

WM>Объясните, за что MS так любит определять типы-сателлиты, например: BYTE и LPBYTE (вместо BYTE*) + LPCBYTE вместо const BYTE*. Откуда такая нелюбовь к оператору "*"?


WM>Печально что привычка укрепляется в неокрепших умах молодых программистов, которые пишут код "на-гора", читать же его потом -- глаза сломаешь.


WM>Впрочем может я не проникся идеей, поясните, в чем от таких сокращений может быть радость.


Мне кажется, это сложилось исторически с тех времен, когда для программ существовало множество моделей памяти, в соответсвии с которыми они могли быть скомпилированы. Например, tiny, small, large, pascal. Эти модели отличались размером указателей на данные (или код) в сегментах данных, стека, кода. Объявляя указатель как LPBYTE мы получали длинный указатель независимо от выбранной нами модели памяти (там внутри использовался модификатор __far или что-то в этом духе). При этом, можно было писать программы/библиотеки не заботясь о модели памяти -- чтобы сменить модель достаточно было просто изменить опции компилятора и линковщика, и не менять исходники. Win32 программы используют одну модель памяти -- flat. Поэтому LPчего-то-там можно рассматривать как атавизм, или дань традиции.
--
Дмитро
Re[3]: Лишние сущности?
От: Sergey Россия  
Дата: 15.03.05 11:48
Оценка:
Hello, ussr!
You wrote on Tue, 15 Mar 2005 07:52:31 GMT:

S>> Радость от них очень простая — неокрепшим умам молодых программистов,

S>> пользуясь такими тайпдефами, вполне по силам изобразить, скажем,
S>> ссылку на указатель. Что без тайпдефов практически не реально -
S>> в скобках запутаются.

u> где там скобки?


Будут, только попроси написать Почему-то многие сначала пишут так:
int &*p;
потом
так:
int &(*p);
потом пишут с тайпдефом.

u>
 u>  register volatile struct tm *&t = t0;
 u>

u> даже в таком изврате нет никаких скобок

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: Лишние сущности?
От: Sergey Россия  
Дата: 21.03.05 14:12
Оценка:
Hello, WinterMute!
You wrote on Mon, 14 Mar 2005 22:15:45 GMT:

W> Объясните, за что MS так любит определять типы-сателлиты, например: BYTE

W> и LPBYTE (вместо BYTE*) + LPCBYTE вместо const BYTE*.
W> Откуда такая нелюбовь к оператору "*"?

W> Печально что привычка укрепляется в неокрепших умах молодых

W> программистов, которые пишут код "на-гора", читать же его потом -- глаза
W> сломаешь.

W> Впрочем может я не проникся идеей, поясните, в чем от таких сокращений

W> может быть радость.

Во, вспомнил я таки, разглядывая старые коды, откуда это пошло и какая от
таких сокращений радость — FAR писать не надо

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.