Portál AbcLinuxu, 12. května 2025 10:44

Dotaz: příkaz #define v C

19.5.2010 09:21 Okallasch | skóre: 1
příkaz #define v C
Přečteno: 1329×
Odpovědět | Admin
Zdravim. Mám takovou otázku. Pokud si v C na začátku programu přes příkaz:

#define SOUBOR "soubor.txt"

nadefinuji jméno souboru, který například budu otevírat. Ale co když potřebuju v průběhu programu změnit soubor.txt třeba na soubor_old.txt. Poradí mi prosím někdo jak to udělat? Díky.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 2× (Tomáš Heger (geckon), Okallasch (tazatel))
okbob avatar 19.5.2010 09:28 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: příkaz #define v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
co třeba místo konstanty použít proměnnou
char *nazev_souboru;
nazev_souboru = "soubor.txt";
...
nazev_souboru = "soubor_old.txt";
19.5.2010 09:51 Okallasch | skóre: 1
Rozbalit Rozbalit vše Re: příkaz #define v C
aj tak teď si připadám jak blb, že mě to nenapadlo samotného.... díky :-)
19.5.2010 21:38 Maldini
Rozbalit Rozbalit vše Re: příkaz #define v C
Nebo pokud lpíš na makrech a maš silný žaludek, zkus #undef #define SOUBOR "soubor_OLDA.txt" :-D

Ale spíš si počti http://forum.builder.cz/read.php?123,2741883
19.5.2010 21:42 Maldini
Rozbalit Rozbalit vše Re: příkaz #define v C
Omluva, netrefa... #undef SOUBOR
#define SOUBOR "soubor_OLDA.txt"
:-D
21.5.2010 00:54 Michal.To
Rozbalit Rozbalit vše Re: příkaz #define v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlepsi by asi bylo zacit se ucit od zacatku ;-) Uz kdyz rikas direktive preprocesoru "prikaz" naznacuje, ze je neco hodne spatne v chapani naprostych zakladu :-)
Řešení 1× (Tomáš Heger (geckon))
frEon avatar 21.5.2010 16:20 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: příkaz #define v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
jue dulezite pochopit co #define dela.

#define je direktiva preprocessoru, ktery zpracovava zdrojak driv, nez dojde ke kommpilaci. #define foo bar udela to, ze pred samotnou kompilaci se vsechny vyskyty retezce foo ve zdrojaku nahradi retezcem bar. kompilator pak kompiluje zdrojak, ve kterem uz zadne foo neni a misto nej je tam ten bar.

proto co nadefinujes pomoci #define uz tezko zmenis. konkretni reseni ti uz kolega poslal vyse...

mej se
Talking about music is like dancing to architecture.
22.5.2010 10:59 Okallasch | skóre: 1
Rozbalit Rozbalit vše Re: příkaz #define v C
Tento dotaz byl založen po totálním selhání mého mozku, proto jsem taky napsal takovou blbost... Mě to totiž pak došlo :-). Ale jinak všem dík :-)
frEon avatar 24.5.2010 11:00 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: příkaz #define v C
njn :-)
Talking about music is like dancing to architecture.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.