Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.26;
Скачать: CL | DM;

Вниз

TTimeVal   Найти похожие ветки 

 
Naturlih   (2009-02-25 16:36) [0]

А почему в Delphi (по крайней мере, в D7) структура TTimeVal объявлена как record, а не как packed record, хотя она используется для вызова WinSock функции select ?


 
Palladin ©   (2009-02-25 16:44) [1]

Проведи изыскания на тему - что значит packed - и поймешь.


 
Palladin ©   (2009-02-25 16:45) [2]

Приведи здесь ее описание, нету ее в D6.


 
Palladin ©   (2009-02-25 16:47) [3]

Хотя нашел. Ну я так и знал. Читай про packed. Если не поймешь, то вопрос, а накой он должен packed?


 
Сергей М. ©   (2009-02-25 16:49) [4]


> Palladin


Как это нет ?
Куда делась ?)
WinSock.pas вроде бы практически в неизменном виде тащат аж со времен D3 ..


 
Сергей М. ©   (2009-02-25 16:50) [5]


> а накой он должен packed?


А накой она тогда упакована в WinSock2.pas ?
Автор, наверно, об этом и хотел спросить ..


 
Palladin ©   (2009-02-25 16:50) [6]


> Сергей М. ©   (25.02.09 16:49) [4]

та нашел нашел... в справке просто не нашел :) у меня ж безусловный рефлекс - сначала в index лезти по незнакомому слову...


 
Palladin ©   (2009-02-25 16:51) [7]


> Сергей М. ©   (25.02.09 16:50) [5]

Подозреваю, шо там она не настолько простая как просто в WinSock. Мож там уже байтики или вордики присутствуют :)


 
Сергей М. ©   (2009-02-25 16:52) [8]


> у меня ж безусловный рефлекс


И правильный рефлекс !)


 
Сергей М. ©   (2009-02-25 16:53) [9]


> Palladin ©   (25.02.09 16:51) [7]


Ну сравни сам (цитата из winsock2.pas):


const
 FD_SETSIZE     =   64;

type
 PFDSet = ^TFDSet;
 TFDSet = packed record
   fd_count: u_int;
   fd_array: array[0..FD_SETSIZE-1] of TSocket;
 end;

 PTimeVal = ^TTimeVal;
 TTimeVal = packed record
   tv_sec: Longint;
   tv_usec: Longint;
 end;


 
Palladin ©   (2009-02-25 17:01) [10]

Тогда и у меня вопрос, а на кой она упакована в WinSock2.pas ? :) В любом случае, даже при поддержке компилятором x64, оба поля войдут в один box. Не будет между ними дырок.


 
Palladin ©   (2009-02-25 17:04) [11]

Хотя разве что защита от всяких экскриметаторов с директивой $A ... )


 
Сергей М. ©   (2009-02-25 17:11) [12]


> Palladin ©   (25.02.09 17:04) [11]


Именно !


 
Naturlih   (2009-02-25 18:48) [13]

и как по вашему, уважаемые мастера, экспериментирование с директивой $A может повлиять?

$A имет по-умолчанию значение $A+. Единственное экспериментирование может заключатсья в том, чтобы выставить $A-. И уж если с $A+ структура будет сформирована правильно, то при отключении выравнивания дырок не будет тем более.

Поэтому фразы:


> Хотя разве что защита от всяких экскриметаторов с директивой
> $A ... )

и

> Именно !


бред.


 
Palladin ©   (2009-02-25 18:52) [14]


> Naturlih   (25.02.09 18:48) [13]

Да в общем то никак. Согласен, эти два поля при любом раскладе попадают в box. И дырок не намечается... так уж компилятор работает с полями в записи...


 
Naturlih   (2009-02-25 19:07) [15]


> Да в общем то никак. Согласен


тогда можно вернуться к твоему вопросу:


>  а на кой она упакована в WinSock2.pas ?


сам то как думаешь? ws2 вроде Коншин писал? Мне кажется правильно написал.

P.S. Оказывается в справке по дельфи есть и вариант $A8 (он и стоит по-умолчанию). Это что за фигня?! Это задел на 64-ех битные версии что ли?! А в текущих версиях $A8 эквивалентно $A4?! Хрень какая-то получается...


 
Palladin ©   (2009-02-25 19:34) [16]


> сам то как думаешь? ws2 вроде Коншин писал? Мне кажется
> правильно написал.

А сам то как думаешь? Эта запись, два четырехбайтника, всегда(!) будет 8 байт без всяких дырок. И с пакед и без пакед! Чего ты еще хочешь узнать? А если тебе просто кажется - то просто крестить.


 
Palladin ©   (2009-02-25 19:35) [17]

А по вопросу на кой имено Коншин туда написал пакед у него и спроси. Он тут бывает. Я говорю, что это лишнее. Именно в этом случае.


 
Сергей М. ©   (2009-02-25 19:46) [18]


> Naturlih   (25.02.09 19:07) [15]


> Хрень какая-то получается


Я, я, кругом цветет сплошной цурюк)

Тебя столь озаботило это ?
Тогда не трогай Коншина, копай глубже и ширше - в IdWinSock2 тоже packed !

Вопрос интересный и достоен отдельного трындежа: кто у кого упер "бред" - Коншин у индейцев или индейцы у Коншина ?)


 
Palladin ©   (2009-02-25 19:48) [19]

А вот у JEDI написано без пакед. О чем и речь. В этой ситуации пофик. О чем я и толкую.


 
Сергей М. ©   (2009-02-25 19:56) [20]


> Palladin ©   (25.02.09 19:48) [19]


Да никто ж и не против кроме топикстартера)



Страницы: 1 вся ветка

Текущий архив: 2009.04.26;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
2-1236634530
Дмитрий Белькевич
2009-03-10 00:35
2009.04.26
Как правильнее закрывать приложение? App.Terminate или Close


9-1179151513
Evgraf
2007-05-14 18:05
2009.04.26
Скелетная анимация и шейдер


15-1235387694
@!!ex
2009-02-23 14:14
2009.04.26
Как записать происходящее на рабочем столе во Flash.


8-1192972332
varmer
2007-10-21 17:12
2009.04.26
Прорисовка строк на канвасе, после чтения их из файла


2-1236854386
b@v
2009-03-12 13:39
2009.04.26
Горячие клавиши