pawel
Guest
Tue Dec 09, 2014 3:28 pm
Witam.
Mam mniejwięcej podobny problem.
jest plik
plik1.h
a w nim
#define LEN1 10
#defien LEN2 (LEN1 + LEN3)
i drugi plik
plik2.h
a w nim
#define LEN3 20
#define LEN4 (LEN3 + LEN1)
Da się te pliki wogóle takie zależne od siebie pliki "zaincludować"?
Pozdrawiam
Paweł
Bool
Guest
Tue Dec 09, 2014 3:38 pm
W dniu 2014-12-09 15:28, pawel pisze:
Quote:
Mam mniejwięcej podobny problem.
jest plik
plik1.h
a w nim
#define LEN1 10
#defien LEN2 (LEN1 + LEN3)
i drugi plik
plik2.h
a w nim
#define LEN3 20
#define LEN4 (LEN3 + LEN1)
Da się te pliki wogóle takie zależne od siebie pliki "zaincludować"?
Powinno się unikać wzajemnego includowania. Utwórz trzeci plik i tylko jego dołączaj.
Sebastian BiaĹy
Guest
Tue Dec 09, 2014 5:51 pm
On 2014-12-09 15:28, pawel wrote:
[quote]Da si
J.F.
Guest
Tue Dec 09, 2014 6:17 pm
Użytkownik "Bool" napisał w wiadomości
W dniu 2014-12-09 15:28, pawel pisze:
Quote:
Mam mniejwięcej podobny problem.
jest plik
plik1.h
a w nim
#define LEN1 10
#defien LEN2 (LEN1 + LEN3)
i drugi plik
plik2.h
a w nim
#define LEN3 20
#define LEN4 (LEN3 + LEN1)
Da się te pliki wogóle takie zależne od siebie pliki
"zaincludować"?
Powinno się unikać wzajemnego includowania. Utwórz trzeci plik i
tylko jego dołączaj.
Ale to nie jest wzajemne includowanie.
Nalezy je w pliku docelowym oba dolaczyc, i w miejscu uzycia symboli
LEN2 lub LEN4, bedą one rozwinięte zgodnie z definicjami ...
J.
pawel
Guest
Tue Dec 09, 2014 7:06 pm
Quote:
Ale to nie jest wzajemne includowanie.
Nalezy je w pliku docelowym oba dolaczyc, i w miejscu uzycia symboli LEN2
lub LEN4, bedą one rozwinięte zgodnie z definicjami ...
Ale dołączam je
#include "plik1.h"
#include "plik2.h"
i jest błąd bo w plik1.h nie ma czegoś takiego jak LEN3 a jak zrobię na
odwrót
#include "plik2.h"
#include "plik1.h"
to w plik2.h nie ma LEN1
Pozdr.
pawel
Guest
Tue Dec 09, 2014 7:13 pm
Quote:
Opisz na czym polega problem *rzeczywisty* a prawdopodobnie znajdzie się
lepsze rozwiązanie niż kwadratowe koło.
Problem rzeczywisty niewiele różni się od tego.
mam dwa pliki config.h i input.h
w pliku input.h mam zdefiniowaną strukturę
typedef struct _INPUT INPUT;
struct _INPUT {
char name[LEN];
....
};
W pliku config.h mam właśnie ten LEN który wykorzystuję też w innych plikach
bo ma być taki sam wszędzie.
Czyli:
#define LEN 10
Oprócz tego mam też zdefiniowaną strukturę której częścią jest struktura
INPUT
typedef struct _CONFIG CONFIG;
struct CONFIG {
INPUT wejscie;
char name[LEN];
.....
}
I teraz robiąc includ'y w pliku źródłowym jest problem bo input.h nie widzi
LEN a na odwrót w config.h nie widać
INPUT.
Jest na to jakaś rada bez tworzenia dodatkowego pliku nagłówkowego w którym
będzie tylko #define LEN 10?
Pozdrawiam
Paweł
Piotr Gałka
Guest
Tue Dec 09, 2014 7:19 pm
Użytkownik "pawel" <paw1976@poczta.onet.pl> napisał w wiadomości
news:m67e4q$17q$1@portraits.wsisiz.edu.pl...
Quote:
Problem rzeczywisty niewiele różni się od tego.
mam dwa pliki config.h i input.h
Na moje powinieneś mieć trzeci *.h w którym zdefiniujesz LEN.
P.G.
J.F.
Guest
Tue Dec 09, 2014 7:33 pm
Użytkownik "pawel" napisał w wiadomości grup
dyskusyjnych:m67dnj$vuk$1@portraits.wsisiz.edu.pl...
Quote:
Ale to nie jest wzajemne includowanie.
Nalezy je w pliku docelowym oba dolaczyc, i w miejscu uzycia
symboli LEN2 lub LEN4, bedą one rozwinięte zgodnie z definicjami
...
Ale dołączam je
#include "plik1.h"
#include "plik2.h"
i jest błąd bo w plik1.h nie ma czegoś takiego jak LEN3 a jak zrobię
na odwrót
Jest blad ? O ile pamietam to nie powinno byc, bo te definicje nie sa
ani rozwijane, ani sprawdzane.
System je tylko zapamietuje do pozniejszego uzytku.
Chyba ze w obu sa uzywane jeszcze innych miejscach niz #define ...
J.
Sebastian BiaĹy
Guest
Tue Dec 09, 2014 8:29 pm
On 2014-12-09 19:13, pawel wrote:
[quote]w pliku input.h mam zdefiniowan
A.L.
Guest
Wed Dec 10, 2014 6:00 am
On Tue, 09 Dec 2014 20:29:19 +0100, Sebastian Bia?y
<heby@poczta.onet.pl> wrote:
[quote]On 2014-12-09 19:13, pawel wrote:
w pliku input.h mam zdefiniowan
Sebastian BiaĹy
Guest
Wed Dec 10, 2014 7:43 am
On 2014-12-10 06:00, A.L. wrote:
Quote:
A skad wiadomo ze on robi w C++?
Niech się wypowie jaki ma kompilator. Jeśli to nie jest system oparty o
8051 z lat 80-tych to przypusczalnie zmiana kompilatora wymaga zmiany
gcc na g++ i już. Bez względu na ten mało prawdopodobny problem -
inkludowanie innych-ale-tych-samych struktur do różnych jednostek
translacji jest prostą drogą do ciezkich bugów. Tego tak robić nie
należy. Dlatego chcę wiedzieć do czego to jest - podejrzewam że do
czegoś bardzo zlego.
Waldemar
Guest
Thu Dec 11, 2014 9:34 am
Am 09.12.2014 um 15:28 schrieb pawel:
[quote]Witam.
Mam mniejwi