Forum » Programiranje » [C++] #include ?
[C++] #include ?
![](https://static.slo-tech.com/stili/avatar_gray.gif)
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.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
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 ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
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?
![](https://static.slo-tech.com/stili/avatar.gif)
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.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
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 | 3178 (2881) | mallard |
» | [VC++, MFC] OnPaintOddelek: Programiranje | 1032 (999) | whatever |
» | [c] Enaki datotekiOddelek: Programiranje | 1052 (912) | Spura |
» | Iščem program c++Oddelek: Programiranje | 879 (747) | krneki0001 |
» | [C++] Pridobivaje in brisanje le dolocenih znakovOddelek: Programiranje | 1361 (1155) | Gundolf |