Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como remover o preenchimento de uma estrutura C
A memória do computador é geralmente alinhado a um limite de tamanho igual ao tamanho da palavra do sistema. Em um sistema hipotético de 32 bits , imagine que este tamanho da palavra é de quatro bytes. Na linguagem C , você pode criar estruturas que armazenam dados . A fim de alinhá-los para o tamanho da palavra , o compilador C pode adicionar preenchimento para a estrutura. Você pode remover esse preenchimento por meio de um pré-processador diretiva que diz-lhe para alinhar os dados de forma diferente. Coisas que você precisa
C Ambiente de Desenvolvimento Integrado , como o Eclipse CDT
C Compiler, tal GCC
Show Mais instruções
1

Carregue o C IDE clicando no ícone do programa. Quando se abre , selecione " File /New /Project " e escolha " C Project" para criar um novo projeto C . Um arquivo de código fonte em branco aparece na parte de editor de texto do IDE.
2

Criar um " struct " com o nome " A" com o alinhamento de memória padrão . Escreva a seguinte declaração no topo do arquivo de código fonte:

struct { } A;
3

Adicione alguns membros de dados para a estrutura " A. " Ao misturar inteiros e tipos de caracteres , você está garantindo que o compilador almofadas da estrutura. Em um sistema de 32 bits , os dois primeiros tipos de dados int cada ocupam quatro bytes de memória e estão perfeitamente alinhados como está. No entanto, os dois tipos de dados de char cada ocupar um único byte , e, juntos, ocupam dois bytes de dados . A vontade pad compilador isso com dois bytes de dados de lixo para alinhar os dados corretamente. Adicione as seguintes instruções para struct "A" , colocando-os entre as chaves após a palavra

int a " struct ". ;

Int b;

char a ;

caractere b;
4

Criar um pré-processador diretiva que diz que para alinhar o limite de 1 byte , e não o limite de 4 bytes :

# pragma pacote (push , 1)
5

Crie outra struct , este chamado " B ", e colocá-lo imediatamente após a diretiva de pré-processamento escrito na etapa anterior .

struct { } B;
6

Preencha struct "B" com os mesmos tipos de dados como struct "A", escrevendo as seguintes declarações dentro das chaves de struct " B. " Esses tipos de dados vai alinhar com o byte mais próximo, que passa a ser de 10 ( quatro para cada int, um para cada char) . Não haverá preenchimento nessa estrutura

int a; .

Int b;

char a ;

caractere b;
< br > 7

Reajuste o alinhamento de volta ao seu padrão , escrevendo a seguinte declaração :

# pragma pack (pop)

Anterior :

Próximo : No
  Os artigos relacionados
·C para a função strcmp 
·Como limpar Stringstreams 
·Como inverter um número na booleano 
·Como fazer uma GUI em C 
·Como passar variáveis ​​do bloco comum a C 
·Como converter IPA para C Fonte 
·Função C estática em linha 
·Como compilar código C + + Usando GNU 
·Função recursiva em C 
·Como imprimir um triângulo em C 
  Artigos em destaque
·Como ocultar os botões no Xcode 
·Como usar objetos em 2D CPP 
·Como ler números de arquivos no C 
·Como reverter elementos de um array em C 
·Como usar o OpenGL para Linguagem C 
·Como Verificar Ctrl- D em C + + 
·Como ocultar o subexibição em um iPhone 
·Como converter um alfabeto em Caps no CPP 
·Como ler arquivos Hex em C + + 
·GNU & C + + para computadores 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados