Gå til innhold

Forskjellige #include <...>


Anbefalte innlegg

På mange av de enkle programmene man lærer i tutorials og slikt bruker man

#include <iostream>

 

mens i f.eks. denne tråden, blir det brukt

#include <windows>

 

hva er forskjellen på de to? forskjellige funksjoner, eller er det at de takler forskjellige ting?

 

Edit: fant det ut selv, i hvertfall nesten...:

 

"The header <iostream> is a standard library header and in common with all of the standard C++ headers its contents are in namespace std. There are several ways to qualify the contents of namespace std."

 

Edit2: link til tutorial der jeg fant ovenstående... fra 2003, så den er ganske oppdatert! link

Endret av Jibril2k
Lenke til kommentar
Videoannonse
Annonse

da du #include'er noe så henter du inn et bibliotek. hvis navnet står mellom < og > er det et bibliotek som ligger i spesielle mapper, og som antagligvis har kommet sammen med kompilatoren. Hvis du lager en egen .h fil så må du bruker "" rundt navnet med mindre du legger den i en av disse spesielle mappene.

 

iostream er C++ sitt standard bibliotek for input/output. windows.h derimot er win32 api kall og funksjoner.

Lenke til kommentar

Det hele er egentlig en ganske lang historie. I C slutter alle header-filene på .h. Slik var det i begynnelsen med C++ og, men da C++ ble standardisert fant komiteen ut at Standard C++ Library'et burde skille seg ut fra de vanlige header-filene. I tillegg kom namespace-feature'en, og situasjonen er nå sånn:

 

1) Standard headere ser nå slik ut: <headernavn> (e.g. <iostream>, <fstream> osv). Innholdet i disse header-filene ligger bare i namespace std.

 

2) Standard C-headere for C++ tok vekk .h og fikk en c foran navnet, slik at de ser slik ut: <cheadernavn> (e.g. <cstdlib>, <cstdio> osv). Innholdet i disse header-filene ligger bare i namespace std.

 

3) De tidligere C++-header-filene er "deprecated", som det så fint heter, men de fleste kompilatorer støtter dem fortsatt. Disse ser sånn ut: <headernavn.h> (e.g. <iostream.h>, <fstream.h> osv), og innholdet er i global namespace, men ikke i namespace std.

 

4) De tidligere C-header-filene (for C++) støttes fortsatt. Innholdet i disse filene er i namespace std, OG i global namespace.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...