Fórum Diferenças Entre Estruturas #294944
09/09/2005
0
Tiago Malveira
Curtir tópico
+ 0Posts
09/09/2005
Ipc$
Gostei + 0
09/09/2005
Tiago Malveira
É isso mesmo...
Gostei + 0
09/09/2005
Rjun
Veja se esses links te ajudam.
http://www.activedelphi.com.br//modules.php?op=modload&name=XForum&file=viewthread&fid=4&tid=2048&orderdate=DESC
http://forum.clubedelphi.net/viewtopic.php?t=62617
Gostei + 0
09/09/2005
Massuda
Quando o packed não é usado, o compilador dispõe os elementos do record na memória de modo que o endereçamento desses elementos por parte do processador seja mais eficiente. Num processador 32 bits é mais eficiente ter os dados em endereços que sejam múltiplo de 4. Assim, um record...
type TExemplo = record C: Byte; W: Word L: Longword; end;
| C | - | - | - | | W | W | - | - | | L | L | L | L |
Quando packed é usado, você está pedindo explicitamente ao compilador para não tentar otimizar o acesso aos elementos do record, o que faz com que o compilador disponha os elementos do record na memória sem inserir bytes adicionais para obter um endereçamento mais eficiente; o record TExemplo ficaria assim...
| C | | W | W | | L | L | L | L |
Normalmente usa-se packed nos records que representam estruturas de dados que são armazenadas em disco ou em estruturas de dados usadas em comunicação de dados.
Geralmente não há necessidade de usar packed para estruturas de dados que são usadas apenas em tempo de execução.
Gostei + 0
09/09/2005
Ipc$
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)