Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
15-1235242573
Kerk
2009-02-21 21:56
2009.04.26
Задачка про поезд


3-1219922045
Finjy
2008-08-28 15:14
2009.04.26
заполнение ListView, используя функцию max


2-1237215031
пикассо
2009-03-16 17:50
2009.04.26
Что не так с utf8?


2-1236591711
Franzy
2009-03-09 12:41
2009.04.26
Указатели и работа с вирт. памятью


2-1237123155
бобик
2009-03-15 16:19
2009.04.26
позиция курсора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский