-
-
Notifications
You must be signed in to change notification settings - Fork 0
Estruturas e Uniões de dados
Uma estrutura é um tipo de dado composto, cujo interior abriga uma quantidade qualquer de variáveis denominadas "campos" ou "membros".
Exemplo:
Uma string é uma estrutura com Um caractere inicial e Um caractere final.
Uma estrutura vazia ocupa 0 bits na memória, mas você pode definir estruturas de qualquer comprimento adicionando "campos" ou "membros" ao protótipo da estrutura. Esses campos podem ser de qualquer tipo.
O tamanho da estrutura é, em via de regra, igual à soma do tamanho de seus campos.
Perceba que a estrutura acima contém 02 membros: o caractere inicial e o caractere final. isto só é possível por causa que estes tipos já haviam sido declarados previamente (caso contrário o compilador emitiria uma mensagem de erro informando que o tipo de dado declarado não foi reconhecido).
Não é necessário declarar um novo tipo de dado para cada membro de uma estrutura. Se o tipo de dado for utilizado apenas dentro do contexto da estrutura, você pode utilizar a palavra-chave "denominado" (e suas respectivas flexões em gênero e número).
A sintaxe geral é:
<artigo indefinido> <tipo> denominado <nome>
Exemplo:
Um DEVMODE é uma estrutura com \ Contém informações sobre a inicialização de uma impressora ou monitor de vídeo. 32 bytes denominados dmDeviceName, Uma word denominada dmSpecVersion, Uma word denominada dmDriverVersion, Uma word denominada dmSize, Uma word denominada dmDriverExtra, Um número denominado dmFields, Uma word denominada dmOrientation, Uma word denominada dmPaperSize, Uma word denominada dmPaperLength, Uma word denominada dmPaperWidth, Uma word denominada dmScale, Uma word denominada dmCopies, Uma word denominada dmDefaultSource, Uma word denominada dmPrintQuality, Uma word denominada dmColor, Uma word denominada dmDuplex, Uma word denominada dmYResolution, Uma word denominada dmTTOption, Uma word denominada dmCollate, 32 bytes denominados dmFormName, Uma word denominada dmLogPixels, Um número denominado dmBitsPerPel, Um número denominado dmPelsWidth, Um número denominado dmPelsHeight, Um número denominado dmDisplayFlags, Um número denominado dmDisplayFrequency, Um número denominado dmICMMethod, Um número denominado dmICMIntent, Um número denominado dmMediaType, Um número denominado dmDitherType, Um número denominado dmReserved1, Um número denominado dmReserved2.
Uma união é um valor que pode ter várias representações ou formatos dentro da mesma posição na memória.
É possível criar uma "união de dados" utilizando a palavra-chave sob.
Exemplo:
Um número é uma estrutura com Um primeiro byte, Um segundo byte, Um terceiro byte, Um quarto byte, Uma word de ordem inferior sob o primeiro byte, Uma word de ordem superior sob o terceiro byte. Uma word é uma estrutura com Um byte inicial e Um byte final.
A estrutura número, será armazenada da seguinte forma:
Conforme a implementação dada acima, cada word será armazenada da seguinte forma:
Para obter e modificar algum o valor de algum campo de uma estrutura, utiliza algumas das contrações abaixo:
-
deste
-
destes
-
desta
-
destas
Por exemplo, na estrutura a seguir:
Uma pessoa é uma estrutura com Um nome, Um sobrenome e Uma idade.
Poderíamos alterar os valores dos membros individuais desta estrutura da seguinte forma:
Atribua "João" para o nome desta pessoa.
Atribua "da Silva" para o sobrenome desta pessoa.
Atribua 30 para a idade desta pessoa.
Após preencher os campos da estrutura, podemos utilizar da mesma sintaxe para acessá-los
Escreva o nome desta pessoa seguido de " " junto com o sobrenome desta pessoa.