pliki i include

Loading thread data ...

W dniu 2014-12-09 15:28, pawel pisze:

Powinno się unikać wzajemnego includowania. Utwórz trzeci plik i tylko jego dołączaj.

Reply to
Bool

Opisz na czym polega problem *rzeczywisty* a prawdopodobnie znajdzie się lepsze rozwiązanie niż kwadratowe koło.

Reply to
Sebastian Biały

template< unsigned int _Size >

struct _INPUT { char name[ _Size ]; ..... };

Jednak poderzewam że chcesz wielokrotnie inkludować _INPUT zmieniając czasem LEN w róznych miejscach, czy się mylę? Jeśli mam rację to

*ZDECYDOWANIE* templatey.

Dlaczego dodatkowy plik jest problemem skoro jest rozwiązaniem?

Reply to
Sebastian Biały

A skad wiadomo ze on robi w C++?

A.L.

Reply to
A.L.

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.
Reply to
Sebastian Biały

Am 09.12.2014 um 15:28 schrieb pawel:

To zależy od kompilatora i jego preprocesora. Niektóre preprocesory są dwubiegowe i wtedy możesz includować w dowolnej kolejności i będzie działać. W przypadku jednobiegowych masz problem, w szczególności, jak preprocesor nie chce zdefiniować czegoś 2 razy. Wtedy musisz dodać jeszcze jeden include z warunkami. Na przykład taki:

plik_g.h

#define LEN1 10 #define plik_g

a w pozostałych plikach masz:

#ifndef plik_g #include plik_g #endif

ewentualnie plik_g.h #ifndef LEN1 #define LEN1 10 #endif

Waldek

Reply to
Waldemar

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.