Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Include <dalsi.c> v jazyce C  (Přečteno 2474 krát)

Ebola

  • Návštěvník
  • Příspěvků: 85
Include <dalsi.c> v jazyce C
« kdy: 21 Března 2011, 19:38:19 »
Ahoj, potřeboval bych poradit s takovou blbostí. Už hodinu googlím ve všech světových jazycích ale řešení jsem nenašel. Programuju v céčku v geditu a chci do hlavního programu fláknout include dalšího souboru s kódem. Tak nějak jsem po půl hodině trápení a přemýšlení "kde jsem to tehdy viděl" dostal do bodu kdy jsem použil stejný předpis jako pro hlavičkový soubor, na jednoduchém příkladě:

Kód: [Vybrat]
int main(int argc, char **argv)
{
  #include </home/uzivatel/Plocha/C/druhy.c>
  return 0;
}

Tohle mi v pohodě šlape, ale jde mi o to že bych chtěl tu cestu napsat relativně (abych když to přenesu na jiný PC do jiné zložky nemusel přepisovat všechny diry v includech). Když totiž nahradím celou cestu jen #include <druhy.c> tak to automaticky nesežere kompilátor. Je mi jasné že to určitě nějak jde a bude to nějaká blbost s tečkou, dolarem a lomítkem nebo tak nějak. Bohužel jsem všechny možnosti co mě napadly neúspěšně vyzkoušel a budu rád za každou radu.

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Include <dalsi.c> v jazyce C
« Odpověď #1 kdy: 21 Března 2011, 20:04:51 »
nedávej cestu do lomenejch závorek, ale do uvozovek
Kód: [Vybrat]
#include "druhy.c"http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Include <dalsi.c> v jazyce C
« Odpověď #2 kdy: 21 Března 2011, 20:06:46 »
Ovšem tahle includovat části kódu...no fuj.
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Ebola

  • Návštěvník
  • Příspěvků: 85
Re: Include <dalsi.c> v jazyce C
« Odpověď #3 kdy: 21 Března 2011, 20:28:22 »
Ovšem tahle includovat části kódu...no fuj.
OK, jak to je lepší podle tebe?  ;D

premet

  • Host
Re: Include <dalsi.c> v jazyce C
« Odpověď #4 kdy: 21 Března 2011, 20:45:20 »
Tak nic takovýho jsem v životě teda neviděl, na co něco takovýho vůbec potřebuješ ? Jestli chceš zkompilovat 2 zdrojový soubory dohromady tak to normálně zadáš v kompilátoru nebo si napiš makefile a v něm si to udělej.

Ebola

  • Návštěvník
  • Příspěvků: 85
Re: Include <dalsi.c> v jazyce C
« Odpověď #5 kdy: 21 Března 2011, 21:08:03 »
Programuju vlastní aplikaci a chci vystrčit ven některé kusy kódu, aby hlavní kód nebyl 150 tisíc řádků dlouhá slátanina (to číslo je pochopitelně s nadsázkou), ale aby to bylo třeba 6 souborů zvlášť a každý by plnil svůj účel. V praxi například načítaní z csv. Udělám hlavní program a některé větve korekce znaků šoupnu externě aby mi nepřekáželi a pokaždé když bych chtěl změnit proměnnou tak nemusel přeskakovat 100 tísíc řádků kódu.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Include <dalsi.c> v jazyce C
« Odpověď #6 kdy: 21 Března 2011, 21:11:41 »
Ovšem tahle includovat části kódu...no fuj.
OK, jak to je lepší podle tebe?  ;D

obsah souboru druhy.c
Kód: [Vybrat]
void ficura()
{
  ...
}

a obsah main.c
Kód: [Vybrat]
#include "druhy.c"
int main()
{
  ficura();
  return 0;
}
« Poslední změna: 21 Března 2011, 21:13:35 od sachy »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Martin - ViPEr*CZ*

Re: Include <dalsi.c> v jazyce C
« Odpověď #7 kdy: 21 Března 2011, 21:26:29 »
Tak nic takovýho jsem v životě teda neviděl, na co něco takovýho vůbec potřebuješ ? Jestli chceš zkompilovat 2 zdrojový soubory dohromady tak to normálně zadáš v kompilátoru nebo si napiš makefile a v něm si to udělej.
A nebo pokud jste líný jako já, tak použijete nějaké IDE, aby jste si nemusel Makefile tvořit sám 8)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

premet

  • Host
Re: Include <dalsi.c> v jazyce C
« Odpověď #8 kdy: 21 Března 2011, 21:29:43 »
K tomuhle to co ty chceš se používají hlavičkový soubory, kde si nadeklaruješ funkce atd a inkluduješ jen hlavičkový soubor. Funkce pak můžeš volat libovolně tam, kde máš inkludovaný hlavičkový soubor.

Tak nic takovýho jsem v životě teda neviděl, na co něco takovýho vůbec potřebuješ ? Jestli chceš zkompilovat 2 zdrojový soubory dohromady tak to normálně zadáš v kompilátoru nebo si napiš makefile a v něm si to udělej.
A nebo pokud jste líný jako já, tak použijete nějaké IDE, aby jste si nemusel Makefile tvořit sám 8)
Kdo říkal, že já si ho píšu sám  ;D
« Poslední změna: 21 Března 2011, 21:31:20 od Honza Grulich »

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Include <dalsi.c> v jazyce C
« Odpověď #9 kdy: 22 Března 2011, 16:52:22 »
@Ebola:
z toho co pises je patrne , ze nejsi zadny profik (z toho take plyne , ze je nepravdepodobne, ze bys programoval napr. pro mikroprocesory a podobne, kde je C jedina rozumna moznosta) a v Cecku mas velke mezery, takze bych ti radil, se na C vykaslat a prejit na nejaky jazyk vyssi urovne (na zpracovani textu je napr. skvely Perl, jestli chces neco s lidstejsi syntaxi tak napr. Python - k tomu nedavno vydalo CZ.NIC vybornou knizku(zdarma))

P.S.: Stesti ze jsou D. Ritchie a K. Thompson na zivu - protoze byt mrtvi, tak  pri pohledu na includovani zdrojoveho kodu misto hlavicek rotuji v hrobe jako Kaplanova turbina  :D
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

Pavel Půlpán

Re: Include <dalsi.c> v jazyce C
« Odpověď #10 kdy: 22 Března 2011, 18:07:33 »
:D Každej někdy začínaj, já třeba nesnášel na vejšce, že se učilo OOP v Pascalu... tak jsem všechny projekty programoval v C++ a profesor mě za to zrovna nemiloval. Taky to tak dopadlo. 8)
« Poslední změna: 22 Března 2011, 18:09:37 od Pavel Půlpán »

Ebola

  • Návštěvník
  • Příspěvků: 85
Re: Include <dalsi.c> v jazyce C
« Odpověď #11 kdy: 22 Března 2011, 18:26:39 »
Ahoj, dneska jsem do toho ve volné chvíli vrtal a nakonec jsem to vyřešil podle Sachy.

Udělal jsem si druhý soubor s funkcí, includoval ho a pak jsem ji jen zavolal. Když už bude stát za prd můj program tak ať to je alespoň profesionálně napsané  :D
Jsem na výšce a každý semestr programujem v jiném jazyce, navíc k tomu ještě fyzika a sítě, takže není čas se do toho ponořit více. Zatím jsem v C mimo školu neprogramoval, tak si jen zkouším syntaxi na příkladech z jiných jazyků.

Dík všem. :P

Ebola

  • Návštěvník
  • Příspěvků: 85
Re: Include <dalsi.c> v jazyce C
« Odpověď #12 kdy: 22 Března 2011, 18:33:26 »
@Ebola:
z toho co pises je patrne , ze nejsi zadny profik (...) takze bych ti radil, se na C vykaslat a prejit na nejaky jazyk vyssi urovne (...)
Jen tak mimochodem... U nás to je naopak, v zimním semetru jsem znásilňoval registry procesoru v ASM a postupujeme k těm vyšším, příští rok je v plánu perl, php,.... a za další rok python a další  :D

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Include <dalsi.c> v jazyce C
« Odpověď #13 kdy: 22 Března 2011, 18:37:45 »
Jen tak mimochodem... U nás to je naopak, v zimním semetru jsem znásilňoval registry procesoru v ASM a postupujeme k těm vyšším, příští rok je v plánu perl, php,.... a za další rok python a další  :D

Rozumné :)
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Pavel Půlpán

Re: Include <dalsi.c> v jazyce C
« Odpověď #14 kdy: 22 Března 2011, 18:38:15 »
To svoje si hold musí člověk objevit sám. ;)

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Include <dalsi.c> v jazyce C
« Odpověď #15 kdy: 22 Března 2011, 18:47:33 »
...
Jen tak mimochodem... U nás to je naopak, v zimním semetru jsem znásilňoval registry procesoru v ASM a postupujeme k těm vyšším, příští rok je v plánu perl, php,.... a za další rok python a další  :D
no u nas na FIT VUTBR, to bylo priblizne stejne (az na to, ze asm, jsme delali paralelne s C - coz je vyborne na pochopeni pointeru a buffer overflow), ale v pripade, ze nejsi samouk, tak je pro me o to nepochopitelnejsi, jak muzes delat takove boty (u nas by me za neco takoveho ve cviku ze Zakladu programovani(C) cvicici nejspis povesil za koule do pruvanu, protoze jinak by jemu udelal to same garant predmetu ;) )

nechal jsem se trochu unest, shrnul bych to doporucenim precist si "Ucebnice jazyka C" od Herouta
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

Pavel Půlpán

Re: Include <dalsi.c> v jazyce C
« Odpověď #16 kdy: 22 Března 2011, 19:40:21 »
Totální souhlas s Heroutem, to je fantastické čtivo... se slzou v oku vzpomínám na chvíle, když jsem si to četl před spaním. Potom jsem to vyměnil na Mistrovství v C++, které jsem nikdy nedočetl. :D

skunkos

  • Aktivní člen
  • *
  • Příspěvků: 399
    • Osobní web
Re: Include <dalsi.c> v jazyce C
« Odpověď #17 kdy: 13 Dubna 2011, 14:44:38 »
Ahoj, potřeboval bych poradit s takovou blbostí. Už hodinu googlím ve všech světových jazycích ale řešení jsem nenašel. Programuju v céčku v geditu a chci do hlavního programu fláknout include dalšího souboru s kódem. Tak nějak jsem po půl hodině trápení a přemýšlení "kde jsem to tehdy viděl" dostal do bodu kdy jsem použil stejný předpis jako pro hlavičkový soubor, na jednoduchém příkladě:

Kód: [Vybrat]
int main(int argc, char **argv)
{
  #include </home/uzivatel/Plocha/C/druhy.c>
  return 0;
}

Tohle mi v pohodě šlape, ale jde mi o to že bych chtěl tu cestu napsat relativně (abych když to přenesu na jiný PC do jiné zložky nemusel přepisovat všechny diry v includech). Když totiž nahradím celou cestu jen #include <druhy.c> tak to automaticky nesežere kompilátor. Je mi jasné že to určitě nějak jde a bude to nějaká blbost s tečkou, dolarem a lomítkem nebo tak nějak. Bohužel jsem všechny možnosti co mě napadly neúspěšně vyzkoušel a budu rád za každou radu.

Hele určitě inkluduj na začátku každýho zrojovýho souboru. Uvozovky už tu zazněly.
« Poslední změna: 13 Dubna 2011, 14:49:32 od Martin - ViPEr*CZ* »
ArchLinux (KDE)
Můj web

 

Provoz zaštiťuje spolek OpenAlt.