.[ ČeskéHry.cz ].
poradi hlavickovych souboru

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
KralLam2



Založen: 17. 10. 2007
Příspěvky: 4

PříspěvekZaslal: 20. říjen 2007, 08:26:02    Předmět: poradi hlavickovych souboru Odpovědět s citátem

Ahoj, v jakem poradi se maji vkladat hlavickove soubory? Od nejspecializovanejsiho po nejobecnejsi nebo naopak a proc? Mam pocit, ze jsem cetl, ze poradi od nejspicial. po nejobecn. vede k odstranovani zavislosti ale nejak nevim...
A co si mysite o vkladani includu do includu?
Dekuju za reakci.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 20. říjen 2007, 08:29:30    Předmět: Odpovědět s citátem

Já to většinou dělám tak, aby mi to fungovalo Smile
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 20. říjen 2007, 09:45:56    Předmět: Odpovědět s citátem

Includy jsou obcas zlo. Nekdo to dela tak, ze vsechny includy da do jednoho .h souboru a ten pak pouzije ve vsech c/cpp. Vyhoda je v tom, ze je v tom poradek, nevyhoda, ze pokud nekdo zmeni jedno h, je treba prekompilovat vsechny cpp a to trva dloooouho.
Pak se da inkludovat jen to, co je potreba a minimalizovat includy v jinych inkludech. Pohuzel z toho vznikaji dost neprehledne situace. Kdyz jsem tuhle potreboval procistit Krkala a zbavit se cyklickych zavislosti, tak jsem si musel na papir nakreslit graf Wink
Taky jsem slysel o tom, ze to nekdo dava do stdafx.h. Vyhoda: rychla kompilace. Nevyhoda, kdyz nekdo neco nekde zmeni, tak se to v projektu neprojevi, doklud se neda rebuild all.

Jinak na poradi inkludovani systemovych veci imho vetsinou naprosto nezalezi.

Mimochodem u MS kompilatoru je uzitecne pouzivat #pragma once. A u ostatnich #ifdefy, aby se hacko pouzilo v c/cpp jen jednou.
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 20. říjen 2007, 16:02:04    Předmět: Odpovědět s citátem

MD napsal:
Nevyhoda, kdyz nekdo neco nekde zmeni, tak se to v projektu neprojevi, doklud se neda rebuild all.

Staci dat pouze Build. Nicmene i tak to stdafx.h urychli kompilaci hooooodne (tim myslim vic nez 2x).

MD napsal:
Mimochodem u MS kompilatoru je uzitecne pouzivat #pragma once. A u ostatnich #ifdefy, aby se hacko pouzilo v c/cpp jen jednou.

#pragma once funguje i na G++.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Tomas_Dejmek



Založen: 28. 07. 2007
Příspěvky: 7
Bydliště: Visual studio

PříspěvekZaslal: 20. říjen 2007, 16:45:33    Předmět: Odpovědět s citátem

Jak jako pořadí includů, na pořádí snad nesejde, důležité je aby nebylo něco mimo svůj includ. Ano určitě je lepší mít includy v jednom headeru a ten pak importovat do source. V source je pak trochu mín kodu co mám při ladění pořád na očích.

V mojí první knížce o C++ se psalo, že si mám includy rovnat podle abecedy abych s v tom lépe vyznal.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
BayerMeister



Založen: 02. 10. 2007
Příspěvky: 1
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 20. říjen 2007, 17:17:57    Předmět: Odpovědět s citátem

Vyplatí se použít stdafx.h (precompiled header) ale jedině tehdy, pokud se v něm nebudou dělat změny (i tranzitivně - i dalších souborech, které includuje on). Proto do něho patří externí includy (třetích stran), jako cizí utility, standardní knihovny (všechny <iostream> nebo <stdio.h> a tak).

Další includy (vlastní) je dobré neagregovat, nebo nejvýše do úzkých skupin, kde např. nedává smysl include jednoho bez druhého. Příklad: "mojeFonty.h" a "strukturaGUI.h" dam oboje do "GUI.h", protože jistě nikde nepoužiji jedno bez druhého.

Pořadí includů v .cpp: Nejprve standardní includy (nebo pouze stdafx.h, pokud ho používám) a pak co potřebuji v pořadí, jaké dává smysl (závislejší níže)...
_________________
Richard G. Bayer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Chjoodge



Založen: 30. 07. 2007
Příspěvky: 145

PříspěvekZaslal: 21. říjen 2007, 15:36:27    Předmět: Re: poradi hlavickovych souboru Odpovědět s citátem

KralLam2 napsal:
Ahoj, v jakem poradi se maji vkladat hlavickove soubory?

Dobré je do každého souboru includovat jenom to, co potřebuješ, tzn. do každého headeru includovat headery tříd, které v tom daném headeru používáš - máš pak po změnách rychlejší kompilaci a jako bonus z toho pěkně vidíš, co je na čem jak závislé Smile

O pořadí ti pak většinou moc nejde, protože když něco includuješ, tak to má samo v sobě include na věci, které to potřebuje.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ash



Založen: 30. 07. 2007
Příspěvky: 13
Bydliště: Bratislava

PříspěvekZaslal: 21. říjen 2007, 20:30:31    Předmět: Odpovědět s citátem

Vo všeobecnosti by na poradí nemalo záležať, ale existuje pár situácií, kedy je poradie dôležité. Niektoré deklarácie a definície treba mať uvedené na začiatku (napr. define WIN32_LEAN_AND_MEAN a podobné deklarácie potrebné pre štandardné headrové súbory) a niektoré treba mať vždy na konci (napr. definície operátorov new a delete pre identifikáciu únikov pamäte - ak by to bolo pred štandardnými headermi, tak by sa zbláznili).

A osobne preferujem poradie includov od štandardných k špeciálnym (týkajúcim sa toho konkrétneho projektu).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna