Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

shta gde include-ujemo kada je kod u vishe fajlova

[es] :: C/C++ programiranje :: shta gde include-ujemo kada je kod u vishe fajlova

[ Pregleda: 4107 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kalkulus
Dusko Petrovic
Kalkulus Inc.
Beograd

Član broj: 870
Poruke: 155
*.telekom.yu

Jabber: kalkulus@elitesecurity.org
ICQ: 27017248
Sajt: kalkulus.net


Profil

icon shta gde include-ujemo kada je kod u vishe fajlova28.02.2004. u 21:56 - pre 244 meseci

recimo da imam 3 fajla sa kodom, main.cpp, funkcije.cpp i header.h
kod u fajlovima je podeljen na sledeci nacin

---main.cpp
tu se nalazi samo main() funkcija

---funkcije.cpp
ovde se nalaze definicije svih ostalih funkcija

---header.h
ovde imamo prototipe svih funkcija i definicije nekih tipova

ono shto mene zanima je shta gde include-ujemo da bi ovo radilo kako
treba


evo shta sam ja smislio:

u main.cpp imamo
#include "header.h"

a u header.h
#include "funkcije.cpp"


kolega mi je rekao da ovo ne valja, vec da u header.h treba da stavim
#include "main.cpp"
#include "funkcije.cpp"

--
pozdrav
ICQ:27017248
http://kalkulus.go.to
...Ja bi' hteo da se ritam, naredjujem divlji ritam !


[IN PIVO VERITAS]
 
Odgovor na temu

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 565
*.yubc.net



+27 Profil

icon Re: shta gde include-ujemo kada je kod u vishe fajlova29.02.2004. u 09:37 - pre 244 meseci
I ti i kolega ste u pravu pod uslovom da želiš da program prevedeš tako što ćeš kompilatoru zadati samo jednu izvornu datoteku, pri čemu bi uključivanje izvornih (*.cpp) datoteka u zaglavlje išlo na kraju zaglavlja, a uključivanje zaglavlja u izvorne datoteke na početku izvorne datoteke.

Međutim, to se uglavnom nikad tako ne radi. Pravilno je kompilatoru zadati sve izvorne datoteke:

Code:
<kompilator> main.cpp funkcije.cpp [<opcije>]

a zaglavlja uključiti u one izvorne datoteke kojima su potrebna. U tvom slučaju, i datoteka main.cpp i funkcije.cpp bi na početku sadržala liniju:

Code:
#include <header.h>

a header.h bi izgledao ovako:

Code:
#ifndef _HEADER_H_
#define _HEADER_H_
...
... (Sadrzaj zagljavlja)
...
#endif

U pitanju je tzv. „oklopljavanje“ (armouring) zaglavlja, čime se štitiš od mogućnosti da kompilator uključi zaglavlje više od jednom.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.winn.dial.virgin.net



+4 Profil

icon Re: shta gde include-ujemo kada je kod u vishe fajlova29.02.2004. u 12:57 - pre 244 meseci
#include "nesto.cpp" se nikad ne radi.
To je posao linkera da pronadje gde je implementacija neke funkcije (zato je kompajliranje u C++ mnogo duzhe nego u Delphiu npr.)

Kad inkludujesh header-fajl ti ustvari "obecavash" kompajleru da su funkcije iz tog fajla negde implementirane. U kom .cpp fajlu, to tebe ne treba da brine.
Dobra praksa je da grupishesh deklaracije funkcija/klasa u srodne .h fajlove kako ne bi imao "eksploziju" u cross-referencingu. Implementaciju funkcija iz hedera kasnije mozhesh da shirish u koliko god hocesh .cpp fajlova.
 
Odgovor na temu

kalkulus
Dusko Petrovic
Kalkulus Inc.
Beograd

Član broj: 870
Poruke: 155
*.telekom.yu

Jabber: kalkulus@elitesecurity.org
ICQ: 27017248
Sajt: kalkulus.net


Profil

icon Re: shta gde include-ujemo kada je kod u vishe fajlova01.03.2004. u 01:21 - pre 244 meseci
Bio jednom "Časlav Ilić" i rekao:

hvala na savetu, sada radi
[IN PIVO VERITAS]
 
Odgovor na temu

kalkulus
Dusko Petrovic
Kalkulus Inc.
Beograd

Član broj: 870
Poruke: 155
*.telekom.yu

Jabber: kalkulus@elitesecurity.org
ICQ: 27017248
Sajt: kalkulus.net


Profil

icon Re: shta gde include-ujemo kada je kod u vishe fajlova01.03.2004. u 01:21 - pre 244 meseci
Bio jednom "NastyBoy" i rekao:
Citat:

#include "nesto.cpp" se nikad ne radi.
To je posao linkera da pronadje gde je implementacija neke funkcije
(zato je kompajliranje u C++ mnogo duzhe nego u Delphiu npr.)

Kad inkludujesh header-fajl ti ustvari "obecavash" kompajleru da su
funkcije iz tog fajla negde implementirane. U kom .cpp fajlu, to tebe
ne treba da brine.
Dobra praksa je da grupishesh deklaracije funkcija/klasa u srodne .h
fajlove kako ne bi imao "eksploziju" u cross-referencingu.
Implementaciju funkcija iz hedera kasnije mozhesh da shirish u koliko
god hocesh .cpp fajlova.


10x na svetima
danas samo malo proguglao i nashao sledeci
link
gde je fino objashnjeno nekoliko osnovnih stvari na ovu temu, moze
josh nekome da koristi

[IN PIVO VERITAS]
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: shta gde include-ujemo kada je kod u vishe fajlova01.03.2004. u 10:54 - pre 244 meseci
kalkulus, u principu se to moze i tako raditi. C/C++ programeri imaju
raznorazne "stilove" a to je samo jedan deo necijeg "stila". Neko je vec
rekao da to nije "standardno", ja se sa ovim ne bih slozio. Nailazio sam
na veoma ozbiljne projekte koji rade na slican nacin.
Necu niti volim da uticem na tudji stil, jedino sto mogu da kazem je
kako bih recimo ja to sve odradio:

Ja bih imao <projekat>.h (zameni umesto <projekat> pravi naziv vaseg
projekta - primer: libkalkulus.h) u kome imam deklaracije, tipove i
slicno koji su bitni za ceo projekat. Imao bih takodje funkcije.cpp i
funkcije.h, kao i main.cpp.

Dakle, radno stablo projekta bi izgledalo ovako:
Code:

..
|-- doc
|   `-- README
|-- include
|   |-- funkcije.h
|   `-- kalkulus.h
`-- src
    |-- Makefile
    |-- funkcije.cpp
    `-- main.cpp


U src/Makefile, naravno, prvo sto bih stavio je -I../include :).
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: shta gde include-ujemo kada je kod u vishe fajlova

[ Pregleda: 4107 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.