Forum » Programiranje » [C++] #include ?
[C++] #include ?

Grey ::
Živjo,
zanima me, če je kakšna razlika med tem, ali je #include na začetku oz. na koncu datoteke?
Kako je z dedovanjem lastnosti v primeru #include stavkov? Imamo datoteka1.h in datoteka2.h. V datoteka2.h se nahaja #include datoteka1.h. Ali lahko v datoteka1.h uporabljamo funkcije iz datoteka2.h?
Kako se vklopi debuger v Visual Studio, namreč rad bi šel step-by-step čez program in med tem spremljal, kako se spreminjajo vrednosti spremenljivk.
zanima me, če je kakšna razlika med tem, ali je #include na začetku oz. na koncu datoteke?
Kako je z dedovanjem lastnosti v primeru #include stavkov? Imamo datoteka1.h in datoteka2.h. V datoteka2.h se nahaja #include datoteka1.h. Ali lahko v datoteka1.h uporabljamo funkcije iz datoteka2.h?
Kako se vklopi debuger v Visual Studio, namreč rad bi šel step-by-step čez program in med tem spremljal, kako se spreminjajo vrednosti spremenljivk.

win64 ::
#include si predstavljaj kot, da ti drugo datoteko prilepi v trenutno.
Nekako tako:
prva.h
druga.h
To si predstavljaj, da bo pred prevajanjem spremenjeno v:
tretja.h
To si predstavljaj, da bo pred prevajanjem spremenjeno v:
Kar pa je v tem primeru narobe, ker pri klicu funkcije start1, le-ta ne obstaja.
Imej v mislih, da so headerji namenjeni deklaracijam. Sama koda se po navadi zapisuje v c/cpp datoteke.
Glede razhroščevalnika: F5 za začet razhroščevat, F11 za step into, F10 za Step over, vse to imaš v meniju in orodni vrstici
Nekako tako:
prva.h
void start1(){}
druga.h
#include "prva.h"
void start2(){start1();}
To si predstavljaj, da bo pred prevajanjem spremenjeno v:
void start1(){}
void start2(){start1();}
tretja.h
void start2();
#include "prva.h"
To si predstavljaj, da bo pred prevajanjem spremenjeno v:
void start2(){start1();}
void start1(){}
Kar pa je v tem primeru narobe, ker pri klicu funkcije start1, le-ta ne obstaja.
Imej v mislih, da so headerji namenjeni deklaracijam. Sama koda se po navadi zapisuje v c/cpp datoteke.
Glede razhroščevalnika: F5 za začet razhroščevat, F11 za step into, F10 za Step over, vse to imaš v meniju in orodni vrstici
Zgodovina sprememb…
- spremenil: win64 ()

Grey ::
Kul, hvala za tako hiter odziv. Aha, torej, če je #include na koncu datoteke, se "skompajla" izza datoteke, tako kot je deklarirano in v tem primeru ni moč uporabljati funkcij definiranih v prva.h (...razen,če?).
A obstaja način, da bi iz množice .h in .cpp videl seznam(vrstni red) imen datotek, kako jih compiler razvrsti glede na #include?
A obstaja način, da bi iz množice .h in .cpp videl seznam(vrstni red) imen datotek, kako jih compiler razvrsti glede na #include?

Mavrik ::
Pred prevajanjem se požene predprocesor, ki vse #direktive obdela ŠE PRED prevajanjem. Pri "#include" se vsebina datoteke samo skopira na točno tisto mesto in na koncu se požene prevajalnik.
Če boš pognal "gcc -E file.c -o file.i" boš v file.i dobil C/C++ kodo, kjer je bil predprocesor že pognan in so vse "#include", "#define" etc. direktive sprocesirane. Tako si lahko ogledaš kaj se zgodi s tvojo datoteko preden se začne prevajati.
Če boš pognal "gcc -E file.c -o file.i" boš v file.i dobil C/C++ kodo, kjer je bil predprocesor že pognan in so vse "#include", "#define" etc. direktive sprocesirane. Tako si lahko ogledaš kaj se zgodi s tvojo datoteko preden se začne prevajati.
The truth is rarely pure and never simple.

mallard ::
#include si predstavljaj kot, da ti drugo datoteko prilepi v trenutno.
Imej v mislih, da so headerji namenjeni deklaracijam. Sama koda se po navadi zapisuje v c/cpp datoteke.
Če pa že imaš definicijo funkcije v headerju, jo moraš deklarirat inline.
Zgodovina sprememb…
- spremenilo: mallard ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++]Uporaba strukture v drugi .cpp datotekiOddelek: Programiranje | 3319 (3022) | mallard |
» | [VC++, MFC] OnPaintOddelek: Programiranje | 1083 (1050) | whatever |
» | [c] Enaki datotekiOddelek: Programiranje | 1096 (956) | Spura |
» | Iščem program c++Oddelek: Programiranje | 908 (776) | krneki0001 |
» | [C++] Pridobivaje in brisanje le dolocenih znakovOddelek: Programiranje | 1404 (1198) | Gundolf |