Priwet!
Podskaschite poschaluista kak nado prawilno delat:
Imeetsja: main.cpp, main.h, x.cpp, x.h.
W x.h optisani prototipi funkzii x.cpp, taksche definirowani
peremennie dlja x.cpp (prawilno li eto?)
Funkzii iz x.cpp budut wiziwatsja w main.cpp,
po etomu includiruju x.h w main.cpp (#include "x.h")
Pri kompiljazii: cc -c main.cpp i cc -c x.cpp
sozdadutsja main.o i x.o,
// main.cpp
#include "main.h"
#include "x.h"
main ( )
{
i = func_from_xcpp ( );
}
////////////////////////
// main.h
int i;
////////////////////////
// x.cpp
#include "x.h"
int func_from_xcpp ( )
{
return 1;
}
////////////////////////
// x.h
int i; // ( ! )
int func_from_xcpp ( ); // Prototip
////////////////////////
dalee kompiliruju:
cc -c main.cpp
cc -c x.cpp
rabotaet. No pri linkowanii oschibka, schto
peremennaja 'i' usche definirowana i w main.o i w x.o
(kstati eto oschibka proishodit tolko togda, kogda
kompiliriju eto kak cpp a ne C)
Estestwenno ja delaju schto-to neprawilno, no kak nuschno prawilno delat?
Peresmotrel mnogo knig, no ob etom ne pischut. Kak, gde, w kakich
slutschajah nuschno definirowat prawilno peremennie?
Taksche esli bi bilo mnogo modulei, kotorie hotjat ispolzowat
obschie funkzii i peremennie - kak togda bit ?
Objasnite poschluista!
Zaranee spasibo.