| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 03.01.12 Prihlásený: 05.01.12 Príspevky: 2 Témy: 1 |
Zdravim. Mam taky zaciatocnicky problem. Neviem si poradit s vkladanim suborov. Skusal som viacero moznosti, ale nveim na to prist. Uvadzam jednoduchy kod na vytlacenie znaku, tak ako som to skusal naposledy:
volany subor "hlavni.c":
#include <stdio.h>
putchar('a');
a subor kde je vkladany:
#include <stdio.h>
#include "hlavni.c"
main()
{
hlavni.c
}
|
|
Registrovaný: 11.01.09 Prihlásený: 25.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 03.01.2012 12:04 | |
|
Na vkladanie suborov sluzia vylucne hlavickove subory. Cize nieco ako "hlavny.c" nemozes spravit ( prakticky to mozne je, ale rozhodne to nie je spravne ). Taktiez vo funkcii main() nespravi to "hlavni.c" nic dobre. V nasledujucom linku si nieco precitaj o hlavickovych suboroch, ako sa s nimi pracuje a na co sluzia: http://www.learncpp.com/cpp-tutorial/19-header-files/
V skratke len zhrniem, ze v hlavickovom subore, pomenovanom napr hlavny.h su vylucne iba deklaracie funkcii ( ich nazvy bez tela ), deklaracie struktur, makra a podobne a vsak rozhodne nie definicie ( rozdiel medzi definiciou a deklaraciou ). Dalej by v nom nemala chybat tzv header guard, ktora brani viacnasobnemu vlozeniu toho isteho hlavickoveho suboru do projektu. V opacnom pripade, ak by si hlavicku pripajal viac krat ( povedzme z dvoch roznych modulov, ktore by sa nakoniec zlinkovali do vysledneho spustielneho suboru ), dostal by si chybu, viac nasobnej definicie.
Mala ukazka:
hlavny.h
Kód: #ifndef HLAVNY_C #define HLAVNY_C
void mojaFunkcia( char c );
#endif hlavny.cKód: #include <stdio.h> #include "hlavny.h"
void mojaFunkcia( char c ) { putchar( c ); } main.cKód: #include <stdio.h> #include "hlavny.h"
int main() { mojaFunkcia( 'a' ); /* takto jednoducho sa vola kazda funkcia z externeho suboru */ return 0; }
|
|
Registrovaný: 03.01.12 Prihlásený: 05.01.12 Príspevky: 2 Témy: 1 | Napísal autor témy procion: 04.01.2012 11:42 | |
|
Vdaka. Takze cely zdrojovy text sa neda vkladat, daju sa iba funkcie a konstanty?
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
z akého prozaického dôvodu by si to chcel?
_________________ C#, PHP, ... |
|
Registrovaný: 11.01.09 Prihlásený: 25.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 04.01.2012 19:07 | |
|
@walther: co tak odpovedat k veci? Ak mas zly den, nemusis ho kazit ostatnym...
procion píše: Mam taky zaciatocnicky problem
@procion: ako som spomenul, mozne to je, ale nie je to odporucane povedzme z hladiska efektivnosti ( nie je to nutne, na to sluzia a uplne stacia hlavickove subory - je to ich primarny ucel ). Dalej, ak pracujes s velkym projektami, s viacerymi zdrojovymi subormi, s radovo niekolko 100 riadkami, ak pripojis do jedneho cely dalsi subor, potom dalsi a dalsi, vsetko sa bude kompilovat naraz. Potom ak nieco upravis, znova sa bude cely surhn kodov kompilovat naraz. Ak vsak pripojis iba hlavicky, v nich sa samotny kod nenachadza ( iba prototypy funkcii a pod ), to znamena, skompiluje sa iba dany zdrojovy subor, kde si vykonal zmeny. No a co ma este tak narychlo napada, niekedy mozes potrebovat, aby funkcia nebola pristupna v inom module ( staticka funkcia ). Ak vsak pripojis cely subor, bude vlastne obsiahnuta aj tom druhom subore.
Zaver: rozhodne sa tomu vyvaruj, pretoze to nie je spravna programatorska technika. Nauc sa pracovat s hlavickovymi subormi, ktore su na tento zamer urcene.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Fico, je to k veci. Normálne sa ho pýtam, prečo by niečo takéto robil. Sám píšeš, že to nie je dobrý spôsob a mňa proste zaujíma, o čo mu ide. Možno na to isté existuje x-krát lepšia cesta.
Nehľadaj skryté významy a narážky tam, kde nie sú...
_________________ C#, PHP, ... |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| vkladanie (include) suborov do main v Assembler, C, C++, Pascal, Java | 2 | 385 | 12.07.2011 14:37 v.tkac | | vkladanie viacerých súborov cez include (ZOSTUPNE) v PHP, ASP | 7 | 532 | 10.05.2007 20:24 zero0x | | zaciatocnicky problem - C (hodnoty a pointre) v Assembler, C, C++, Pascal, Java | 7 | 432 | 24.01.2012 9:49 BX | | Jommla! začiatočnícky help v Redakčné systémy | 18 | 710 | 01.03.2013 11:46 GIGN1987 | | Ako pridat zopar suborov do image *.nrg suborov? v Ostatné programy | 7 | 1274 | 30.08.2007 12:33 paulix | | Problém s uploadom súborov v PHP, ASP | 2 | 352 | 16.06.2012 22:01 Gresthorn | | problem pri stahovani suborov v Operačné systémy Microsoft | 1 | 480 | 20.08.2010 21:55 killer | | problém s otvorením súborov v Ostatné programy | 5 | 853 | 08.11.2009 11:00 shiro | | Otváranie exe. súborov problém. v Operačné systémy Microsoft | 4 | 927 | 01.04.2011 22:51 kuRca | | Problem s rozbalovaním súborov v Ostatné programy | 9 | 1260 | 01.09.2009 12:58 tma24 | | problem z internetom odosielanie suborov v Sieťové a internetové programy | 4 | 538 | 04.02.2007 17:31 homerea | | Problém s prehrávaním MP3 súborov v Operačné systémy Microsoft | 0 | 179 | 17.04.2014 18:18 Filips | | Problem s prehravanim .mkv suborov v Video programy | 2 | 2142 | 18.02.2009 16:21 Quiku | | problem s nahravanim suborov phpBB2 v Redakčné systémy | 7 | 759 | 22.12.2007 9:45 mistr85 | | problem so stahovanim .exe suborov v Siete | 17 | 1066 | 21.08.2008 21:38 Daevid | | problém so spúšťaním exe súborov v Operačné systémy Microsoft | 2 | 374 | 12.06.2008 20:54 Numline1 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|