Tipos de dados definidos pelo usuário
Programação para Engenharia
Prof. Dr. Alysson F. Milanez
alysson.milanez@maisunifacisa.com.br
O que veremos?
Tipos de dados definidos pelo usuário
2
Tipos de dados definidos pelo usuário
3
Tipos de dados definidos pelo usuário
C tem cinco formas de definir tipos de dados pelo usuário
4
Tipos de dados definidos pelo usuário
Estrutura: agrupamento de variáveis sob um nome e é chamado de tipo de dado agregado
5
Tipos de dados definidos pelo usuário
Campo de bit: variação da estrutura que permite o fácil acesso aos bits dentro de uma palavra
6
Tipos de dados definidos pelo usuário
União: permite que a mesma porção da memória seja definida por dois ou mais tipos diferentes de variáveis
7
Tipos de dados definidos pelo usuário
Enumeração: lista de símbolos
8
Tipos de dados definidos pelo usuário
O último tipo definido pelo usuário é criado com o typedef e define um novo nome para um tipo existente
9
Estruturas
10
Tipos de dados definidos pelo usuário: Estrutura
Maneira conveniente de agrupar informações
11
Tipos de dados definidos pelo usuário: Estrutura
Maneira conveniente de agrupar informações
Uma definição de estrutura forma um modelo que pode ser usado para criar variáveis de estrutura
12
Tipos de dados definidos pelo usuário: Estrutura
As variáveis que compreendem a estrutura são os membros/elementos/campos da estrutura
13
Tipos de dados definidos pelo usuário: Estrutura
struct identificador{
tipo variavel1;
tipo variavel2;
};
14
Campos de bits
15
Tipos de dados definidos pelo usuário: Campos de bits
C possui um método intrínseco para acessar um único bit dentro de um byte
16
Tipos de dados definidos pelo usuário: Campos de bits
Benefícios:
17
Tipos de dados definidos pelo usuário: Campos de bits
Benefícios:
18
Tipos de dados definidos pelo usuário: Campos de bits
Benefícios:
19
Tipos de dados definidos pelo usuário: Campos de bits
Para acesso aos bits, C usa um método baseado na estrutura. Um campo de bits é apenas um tipo de elemento de estrutura que define o comprimento do campo
20
Tipos de dados definidos pelo usuário: Campos de bits
struct identificador{
tipo variavel1 : comprimento;
tipo variavel2 : comprimento;
};
21
União
22
Tipos de dados definidos pelo usuário: União
Uma union é uma posição de memória que é compartilhada por duas ou mais variáveis diferentes, em geral de tipos diferentes, em momentos diferentes
23
Tipos de dados definidos pelo usuário: União
A definição é semelhante à de uma estrutura:
union identificador{
tipo nome_da_variavel1;
tipo nome_da_variavel2;
...
};
24
Tipos de dados definidos pelo usuário: União
Union pode ajudar na portabilidade do código: o compilador não perde o tamanho real das variáveis que fazem parte da união
25
Enumeração
26
Tipos de dados definidos pelo usuário: Enumeração
Extensão da linguagem adicionada no padrão ANSI. É um conjunto de constantes inteiras que especifica todos os valores legais que uma variável pode ter
27
Tipos de dados definidos pelo usuário: Enumeração
Forma geral:
enum identificador{lista de enumeração};
28
Portabilidade com sizeof
29
Portabilidade com sizeof
O operador sizeof é útil onde estruturas ou uniões são usadas
O tamanho de uma estrutura tem de ser pelo menos a soma dos tamanhos dos seus componentes. Desse modo, podemos usar sizeof sempre que desejarmos saber o tamanho de uma estrutura
30
Portabilidade com sizeof
Como sizeof é avaliado em tempo de compilação, ele é muito importante para as unions, já que o tamanho de uma union é sempre igual ao tamanho do seu maior componente
31
typedef
32
Tipos de dados definidos pelo usuário: typedef
typedef permite que definamos novos nomes para os tipos de dados. Não estamos criando uma nova classe de dados, apenas dando um novo nome
33
Tipos de dados definidos pelo usuário: typedef
Forma geral:
typedef tipo novoNome;
Pode auxiliar como documentação dos tipos sendo usados
34
Tipos de dados definidos pelo usuário: typedef
typedef pode ser usada para simplificar a declaração de variáveis estrutura, union ou de enumeração
35
Exercícios
36
Exercícios
37
Referências
38
Referências
SCHILDT, Herbert; MAYER, Roberto Carlos. C completo e total. 2006.
Capítulos 3 e 7.
39
Tipos de dados definidos pelo usuário
Programação para Engenharia
Prof. Dr. Alysson F. Milanez
alysson.milanez@maisunifacisa.com.br