Unions, tipos enumerados - Programação 1 - Engenharia

De MediaWiki do Campus São José
Revisão de 13h36min de 7 de novembro de 2018 por 127.0.0.1 (discussão) (Criou página com '==Objetivos== *Estruturas com Unions http://www.ead.cpdee.ufmg.br/cursos/C/c.html Exercício: Construa uma union para representar um número complexo. *Renomeando tipos com ty...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Objetivos

  • Estruturas com Unions

http://www.ead.cpdee.ufmg.br/cursos/C/c.html

Exercício: Construa uma union para representar um número complexo.
  • Renomeando tipos com typedef

http://www.ead.cpdee.ufmg.br/cursos/C/c.html

  • Criando variáveis com tipos enumerados.

http://www.ead.cpdee.ufmg.br/cursos/C/c.html

  • Discutir o encaminhamento do trabalho
  • Uso do IDE eclipse
  • Refazer a questão 1 da avaliação usando ponteiros.

Observação sobre ponteiros x arrays

struct {
  char alfa[15];
  int code1;
  int code2;
  int code3;
} tabela[10],*p;

int i;

main()
{ 
  p=tabela;
  i=5;

 /* PARTE 1 */
 tabela[i].code1 = 1;
 tabela[i].code2 = 1;
 tabela[i].code3 = 1;
 /* ASSEMBLY CORRESPONDENTE DA PARTE 1
	movl	i, %eax
	leal	0(,%eax,4), %edx
	leal	0(,%edx,8), %eax
	subl	%edx, %eax
	movl	$1, tabela+16(%eax)
	movl	i, %eax
	leal	0(,%eax,4), %edx
	leal	0(,%edx,8), %eax
	subl	%edx, %eax
	movl	$1, tabela+20(%eax)
	movl	i, %eax
	leal	0(,%eax,4), %edx
	leal	0(,%edx,8), %eax
	subl	%edx, %eax
	movl	$1, tabela+24(%eax)
 */

 /* PARTE 2 */
 p=p+5;
 p->code1 = 1;
 p->code2 = 1;
 p->code3 = 1;
 /* ASSEMBLY CORRESPONDENTE DA PARTE 2
	movl	p, %eax
	addl	$140, %eax
	movl	%eax, p
	movl	p, %eax
	movl	$1, 16(%eax)
	movl	p, %eax
	movl	$1, 20(%eax)
	movl	p, %eax
	movl	$1, 24(%eax)
 */ 

 /* PARTE 3 */
 p[i].code1 = 1; 
 p[i].code2 = 1; 
 p[i].code3 = 1; 
 /* ASSEMBLY CORRESPONDENTE DA PARTE 3
	movl	p, %edx
	movl	i, %eax
	sall	$2, %eax
	leal	0(,%eax,8), %ecx
	movl	%ecx, %ebx
	subl	%eax, %ebx
	movl	%ebx, %eax
	leal	(%edx,%eax), %eax
	movl	$1, 16(%eax)
	movl	p, %edx
	movl	i, %eax
	sall	$2, %eax
	leal	0(,%eax,8), %ecx
	movl	%ecx, %ebx
	subl	%eax, %ebx
	movl	%ebx, %eax
	leal	(%edx,%eax), %eax
	movl	$1, 20(%eax)
	movl	p, %edx
	movl	i, %eax
	sall	$2, %eax
	leal	0(,%eax,8), %ecx
	movl	%ecx, %ebx
	subl	%eax, %ebx
	movl	%ebx, %eax
	leal	(%edx,%eax), %eax
	movl	$1, 24(%eax)
 */ 
}