[C] Problem z podziałem kodu na pliki

Awatar użytkownika
Pneumokok
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 2 sty 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Małopolska
Podziękował: 11 razy
Pomógł: 1 raz

[C] Problem z podziałem kodu na pliki

Post autor: Pneumokok »

Witam!
Otóż mam problem z podziałem programu na pliki.
W skrócie:
Tworzę plik numeryczne.h i daję tam definicję:

Kod: Zaznacz cały

(...)
struct Student
{
    char imie[SIZEBUF];
    char nazwisko[SIZEBUF];
    struct PodstawyElektroniki PE;
    struct ZagadnieniaElektrotechniki ZE;
    struct JiTPr JiTP;
    struct SystemyOperacyjne SO;
    int ECTSsuma;
};

int Pokaz_Baze();
int Pokaz_Kto_Zal();
int Pokaz_Kto_NIE_zal();
int Pokaz_Wyn_Stud(char*);
int Dopisz_Studenta(struct Student*); //zrodlo bledu
W pliku numeryczne.c:

Kod: Zaznacz cały

(...)
int Dopisz_Studenta(struct Student* stud)
{
   // char tu potem bedzie kod 
    //FILE* plik=fo
    return 0;
}
Plik numeryczne.c załaczam do headera:

Kod: Zaznacz cały

#include "numeryczne.c"
A header w pliku głównym:

Kod: Zaznacz cały

#include "numeryczne.h"
Dostaję dość dziwny komunikat o błędzie:

Kod: Zaznacz cały

81 D:\Dev-Cpp\numeryczne.c [Warning] its scope is only this definition or declaration, which is probably not what you want
(...)
54 D:\Dev-Cpp\numeryczne.h conflicting types for 'Dopisz_Studenta' 
 82 D:\Dev-Cpp\numeryczne.c previous definition of 'Dopisz_Studenta' was here 
Struktura (także jej struktury składowe) jest więc znana wcześniej w pliku numeryczne.h, nie mam pojęcia w czym problem. Nie widzę też błedu w przekazanym argumencie do funkcji.

Z góry będę wdzięczny za każdą pomoc.
Pozdrawiam,
Pneumokok.

P.S.
Czepia się tylko tej jednej funkcji, gdyby chodziło o argument myślę że doczepiłby się także do Pokaz_Wyn_Stud(char*).
mikkuexc
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 19 maja 2011, o 20:33
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 5 razy

[C] Problem z podziałem kodu na pliki

Post autor: mikkuexc »

Nie jestem pewny, ale wydaje mi się, że

Kod: Zaznacz cały

#include <numeryczne.c>
jest zbędne.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Problem z podziałem kodu na pliki

Post autor: Afish »

Pliki *.c mają załączać pliki nagłówkowe (*.h), a potem je należy skompilować. Załączanie pliku *.c jest raczej niepoprawne.
Awatar użytkownika
Pneumokok
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 2 sty 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Małopolska
Podziękował: 11 razy
Pomógł: 1 raz

[C] Problem z podziałem kodu na pliki

Post autor: Pneumokok »

Rozwiązałem inaczej - pliki pomocnicze *.c załączają swój header, po czym są przyłączane do pliku głównego. Ponoć tak też można.
abc666

[C] Problem z podziałem kodu na pliki

Post autor: abc666 »

Pneumokok, ale takie przyłączanie jest raczej pozbawione sensu i powoduje same problemy.
ODPOWIEDZ