IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @183
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Nová obytná štvrť v BA

Pekné skolaudované byty s terasami alebo predzáhradkami v Záhorskej Bystrici www.podvrskami.sk

Máte reumu - bolia Vás kolená?

Použite patentovaný japonský výrobok a pomôžte svojmu telu. 100% Bio kvalita. www.detoxipan.sk

Zaregistruj sa!

Tvoj názor stojí peniaze. Vyplňte dotazník a zarobte si! www.marketagent.com

Využite našu zvýhodnenú ponuku

Vydajte sa po stopách histórie viníc Retzer Land - 2 noci s raňajkami za 95€ www.dolne-rakusko.info

vkladanie suborov v C - zaciatocnicky problem

Zaslať odpoveď
AutorSpráva
procion
Užívateľ
Užívateľ

Založený: 03.01.2012
Príspevky: 2

PríspevokZaslal: Ut 03.01.12 12:32Odpovedať s citátomNávrat hore

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
}
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 03.01.12 13:04Odpovedať s citátomNávrat hore

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.c
kód:
#include <stdio.h>
#include "hlavny.h"

void mojaFunkcia( char c )
{
    putchar( c );
}


main.c
kód:
#include <stdio.h>
#include "hlavny.h"

int main()
{
    mojaFunkcia( 'a' );        /* takto jednoducho sa vola kazda funkcia z externeho suboru */
    return 0;
}
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
procion
Užívateľ
Užívateľ

Založený: 03.01.2012
Príspevky: 2

PríspevokZaslal: St 04.01.12 12:42Odpovedať s citátomNávrat hore

Vdaka. Takze cely zdrojovy text sa neda vkladat, daju sa iba funkcie a konstanty?
Zobraziť informácie o autoroviOdoslať súkromnú správu
walther
Užívateľ
Užívateľ

Založený: 24.01.2008
Príspevky: 10194
Bydlisko: Bratislava
Vek: 24

PríspevokZaslal: St 04.01.12 13:00Odpovedať s citátomNávrat hore

z akého prozaického dôvodu by si to chcel?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: St 04.01.12 20:07Odpovedať s citátomNávrat hore

@walther: co tak odpovedat k veci? Ak mas zly den, nemusis ho kazit ostatnym...
procion napísal:
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.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
walther
Užívateľ
Užívateľ

Založený: 24.01.2008
Príspevky: 10194
Bydlisko: Bratislava
Vek: 24

PríspevokZaslal: St 04.01.12 20:17Odpovedať s citátomNávrat hore

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ú...
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
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.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd