Hej,
Natrafiłem się na nieco irytujący problem podczas pisania mojego programu. Nie jestem zaawansowanym programistą ale się pilnie uczę tego wymagającego rzemiosła.
Cóż zrobiłem sobie listę w C wszystko wyglądało ładnie i działało tak jak trzeba, jednak problem się pojawił kiedy chciałem podzielić moją strukturę listy jednokierunkowej na poszczególne pliki tak by program można było ładnie rozbudowywać dodałem również jakieś menu. Niestety poszczególne pliki nie widzą siebie nawzajem mimo, że je includuje (nie jestem w stanie wykonać kompilacji)
Coś jest źle ze składnią osobiście nie lubię tego typu problemów i nie wiem jak sobie z nim poradzić
Kompiluje sobie w devie przy okazji przekazuje kod napisany w c
Kilka razy wyskakuje błąd [Error] unknown type name 'Lista' oraz 'element'
//Plik main
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "element.h"
#include "lista.h"
void menu(){
int exit=0;
int menu;
while( exit==0 ){
printf("1. Dodanie osoby do listy:\n");
printf("2. Wypisanie na ekran\n");
printf("3. Exit\n");
scanf("%d", &menu);
switch( menu )
{
case 1:
dodaj();
case 2:
wypisz();
case 3:
exit=1;
}
}
}
int main(){
menu();
}
//lista.h
#ifndef _LISTA_H
#define _LISTA_H
#include <stdio.h>
#include <stdlib.h>
struct Lista{
element* pierwszy;
};
Lista lista;
lista.pierwszy=NULL;
Lista wypisz(Lista lista);
#endif
//lista.c
#include <stdio.h>
#include <stdlib.h>
Lista wypisz(Lista lista){
element *i;
i=lista.pierwszy;
while(i!=NULL){
printf("%d\n", i->wartosc);
i=i->next;
}
printf("\n");
}
//element.h
#ifndef _ELEMENT_H
#define _ELEMENT_H
#include <stdio.h>
#include <stdlib.h>
struct element{
int wartosc;
element* next;
};
int wartosc;
Lista dodaj(Lista lista, int wartosc);
#endif
//element.c
#include <stdio.h>
#include <stdlib.h>
lista dodaj(Lista lista, int wartosc){
element *nowy;
nowy = (element*)malloc(sizeof(element));
nowy->wartosc = wartosc;
nowy->next = NULL;
if(lista.pierwszy==NULL){
lista.pierwszy=nowy;
}else{
element *i;
i=lista.pierwszy;
while(i->next!=NULL){
i=i->next;
}
i->next=nowy;
}
return lista1;
}