Eu tento compilar os arquivos no DevC++ e é me apresentado erro de referência. Porém quero aprender a maneira correta de dividir tais arquivos independente da IDE ou compilador que irei usar.
Esse é meu arquivo main
#include "tipos.h"
int main(){
int opcao;
tListaCursos lCursos;
inicializarListaCurso(&lCursos);
do {
printf("\n 1 - Inserir Curso");
printf("\n 2 - Consultar curso cadastrado");
printf("\n 3 - Apresentar cursos cadastrados");
printf("\n 4 - Excluir curso");
printf("\n 0 - Sair");
printf("\n Escolha uma opcao: ");
scanf("%d", &opcao);
switch(opcao){
case 1: inserirListaCursoOrdenado(&lCursos); break;
//case 2: consultar(&); break;
case 3: apresentarLista(&lCursos); break;
//case 4: inserirDesconto(&); break;
//case 5: excluir(&tProduto); break;
}
} while (opcao != 0);
}
Esse é meu arquivo tipos.h
#ifndef _tipos_
#define _tipos_
#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct tipoCurso{
char cod_curso[10];
char nomeCurso[40];
int duracaoCurso;
}tCurso;
//===================================================================//
typedef struct tipoListaCurso{
tCurso listaCursos[100];
int tamListaCursos;
}tListaCursos;
//===================================================================//
void limpaTela();
void inicializarListaCursos(tListaCursos *p);
void inserirListaCursoOrdenado(tListaCursos *p);
#endif
Esse arquivo é onde guardo minhas funções
#ifndef
#include "tipos.h"
void limpaTela(){
system("@cls||clear");
}
void inserirListaCursoOrdenado(tListaCursos *p){
limpaTela();
if (p->tamListaCursos == 100){
printf("\n Lista cheia");
}
else {
tCurso novoCurso;
printf("\n Informe Codigo Curso: ");
fflush(stdin);
gets(novoCurso.cod_curso);
printf("\n Informe o nome do Curso: ");
fflush(stdin);
gets(novoCurso.nomeCurso);
printf("\n Informe a duracao do Curso: ");
scanf("%d", &novoCurso.duracaoCurso);
if(p->tamListaCursos == 0){
p->listaCursos[0] = novoCurso;
}
else {
if(strcmp(novoCurso.nomeCurso, p->listaCursos[p->tamListaCursos-1].nomeCurso)){
p->listaCursos[p->tamListaCursos] = novoCurso;
}
else{
int i;
for(i = 0; i < p->tamListaCursos; i++){
if(strcmp(p->listaCursos[i].nomeCurso, novoCurso.nomeCurso) > 0){
break;
}
}
int j;
for(j = p->tamListaCursos; j > i; j--){
p->listaCursos[j] = p->listaCursos[j-1];
}
p->listaCursos[i] = novoCurso;
}
}
p->tamListaCursos++;
}
}
void apresentarLista (tListaCursos *p){
if (p->tamListaCursos == 0){
printf("\n Lista Vazia");
} else {
int i;
for (i=0; i < p->tamListaCursos; i++){
printf("\n Codigo: %s",p->listaCursos[i].cod_curso);
printf("\n Nome: %s",p->listaCursos[i].nomeCurso);
printf("\n Duracao: %d",p->listaCursos[i].duracaoCurso);
}
}
}
void inicializarListaCurso(tListaCursos *p){
p->tamListaCursos = 0;
}
#endif