Ir para conteúdo

Organização e facilidade em ler um código


donutLukke

Posts Recomendados

Boa noite pessoal, tenho uma dúvida a respeito de organização e facilidade em ler um código, suponhamos que eu queria salvar um dado do tipo Produto.

typedef struct_produto
{
  int codigo[9];
  char nome[30];
  char marca[20];
}Produto;


E eu também queira salvar um dado do tipo Colaborador.

typedef struct_colaborador
{
  int id[7];
  char nome[30];
  char cpf[11];
}Colaborador;


Seria melhor eu criar uma função que pudesse salvar os dois tipos de dados, usando dessa forma uma varíavel que identificasse quando entrou um dado do tipo produto ou colaborador...

int salvar(No_Arv **a, int opcao)
{
  if(opcao == 1){ // Opção para salvar um dado do tipo produto
    .....
    .....
  }
  else if(opcao == 2){ // Opção para salvar um dado do tipo colaborador
    .....
    .....
  }
}


Ou criasse funções separadas, uma que salvasse o dado do tipo produto e outra que salvasse o dado do tipo colaborador?

Desde já, agradeço pela ajuda.

Link para o comentário
Compartilhar em outros sites

Depende do que você quer fazer, é claro, mas eu sugeriria, se for o caso de ter uma única interface, que 3 funções fossem criadas. Por exemplo:
 

enum kind_e { PRODUCT, CONSUMER };

_Bool saveProduct( Product *p ) {  ... }
_Bool saveConsumer( Consumer *p )  {  ... }

_Bool save( void *p, enum kind_e kind )
{
  switch ( kind )
  {
    case PRODUCT: return saveProduct( p );
    case CONSUMER: return saveConsumer( p );
  }

  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...