LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Diskuze: článek C/C++ (25) - Funkce s proměnným počtem parametrů

více výstupních bodů funkce
(link)
27.9.2005 10:58
camlost
... lze ve výukových textech považovat za chybu.
Re: více výstupních bodů funkce
(link)
27.9.2005 11:09
Jan Němec
Věk: ( ~40 let)

To jako to "if (!i) return 0;" ve funkci suma? No nevím, pokud mluvíme oba o tom samém, tak já to za chybu nepovažuju. Jsem zvědavý, co mi řeknete, až dojde na standardní knihovnu a funkce typu exit :-)

Re: více výstupních bodů funkce
(link)
27.9.2005 13:26
Aleš Hakl
Bydliště: Praha

Mate k tomu nejaky podpurny argument? Docela by me zajimalo, cim je vice vystupnich bodu funkce tak spatnych.

Re: více výstupních bodů funkce
(link)
1.11.2005 14:13
camlost

Ano, něco bych měl, jen nevím, jestli má smysl se bavit s kluky, jejichž jedinou reakcí je něco o středoškolském učiteli. Hmmm. :-/

No nic, omlouvám se, to nebylo na Vás.

Argument: Představte si, že nemáte k dispozici debugger. Program se chová podivně - např. jednoduchá funkce double bez_dph(double cena) { return(cena / 1.19); } vrací evidentně špatné hodnoty.

Jak budete hledat chybu? Pomocí ladících výpisů. Jakou chybu budete hledat? Nejspíš si někde přepisujete paměť. Jak jí najdete? No, postupoval jsem takhle:

V okolí prvního výskytu chyb jsem funkce vybavil ladícím výpisem ihned po vstupu (obsahoval hodnoty parametrů + nějaké další info) a těsně před opuštěním funkcí, tj. těsně před return (je zřejmé, že obsahoval návratovou hodnotu). Očekával jsem, že okolí chyby najdu podle podezřelých hodnot jednoho či druhého.

Pokud bych měl těch "výstupních bodů funkcí" několik, stala by se správa takového kódu zřejmě trošku nepříjemná.

PS: Tuhle humornou situaci jsem zažil při programování jedné mobilní krabičky. Chybu jsem po několika týdnech skutečně našel - chybná implementace mat. operací v plovoucí řádové čárce. Zdrojáky k systémovým knihovnám bohužel nebyly k dispozici.

Re: více výstupních bodů funkce
(link)
3.10.2005 17:39
Jakub Jochec
Vy jste stredoskolsky ucitel programovani ze ano? ;-D Kdyz jsme u tematu clanku jeden (tedy presneji jedna takova) mi tvrdila ze nejde v C vytvorit funkci s promennym poctem parametru asi tak Vam odpovim :-D.
Spis nez nejake flames by me osobne zajimalo toto...
(link)
3.10.2005 17:59
Jakub Jochec
Vzhledem k tomu ze nemam co delat tak sem se po precteni clanku pustil do takove "opicarny" ktera me napadla... Strucne receno melo by jit o program (presneji receno "opicarnu" ;-)) ) ktery bude nacitat predem neurceny pocet promenych (treba typu int), tento cyklus se ukonci zadanim predem urcene hodnoty a nasledne s nimi prostrednictvim externi funkce bude provadet nejakou zadanou akci (treba jako v clanku - sumu). Jiste kazdeho jiste jako prvni napadne proste pouzit jednoduchy do...while cyklus. Ovsem melo by se jednat o to ze pri behu programu dosadime funkci pocet argumentu, jejich pocet je ve skutecnosti znam az pri behu programu (jako napr pocet promennych v tomto programu). Jiz jsem se dostal k tomu ze za pomoci makra a operatoru ## vytvarim a nasledne mohu pristupovat k takto vytvorenym promenym (aspon v C nema pro konkretni pripad prilis velky smysl vytvaret pole, jeho realokace potom zbytecne zbidacuje vysledny program). Tusim ze by se dalo provest pomoci makra jehoz vystupem bude retezec dosazeny v podobe carkami oddelenych argumentu dosazenych primo do kodu (jak uz to tak u maker byva ;-) ).
Ovsem neustale nemohu prijit na to jak vyresit toto posledni makro... Ma nekdo napad?
Re: Spis nez nejake flames by me osobne zajimalo toto...
(link)
3.10.2005 18:17
Aleš Hakl
Bydliště: Praha

To posledni makro nelze vyresit nijak, C je kompilovany jazyk ^_^. Nicmene vyresit to lze pomoci jedne ze specialnich funkci gcc, konkretne __builtin_apply, viz kapitola "Constructing Function Calls" v manualu gcc. Nicmene reseni pomoci pole je vyrazne jednodussi.

Re: Spis nez nejake flames by me osobne zajimalo toto...
(link)
4.10.2005 08:08
Jan Němec
Věk: ( ~40 let)

Jak už tady zaznělo, C se překládá a makra se rozvíjejí při překladu. Pokud velikost dat zjistím až za běhu, navíc až ze speciální hodnoty poslední proměnné, tak je jediné rozumné řešení předat hodnoty do funkce v nějaké datové struktuře (pole, seznam, strom, halda ...). Realokace pole není tak hrozná, pokud ji neprovádím po každám načtení jedné nové proměnné, ale např. alokuji vždy na dvojnásobek stávající kapacity.

Jde to udělat líp ?
(link)
17.10.2005 19:08
Michal marwin

Jde nějak udělat fci s porměnným počtem parametrů, bez toho aby se zadával počet parametrů, nebo byl dohodnutý standardní poslední parametr?

Re: Jde to udělat líp ?
(link)
17.10.2005 23:49
Aleš Hakl
Bydliště: Praha

V C ne (alespoň ne rozumně přenositelně).

Re: Jde to udělat líp ?
(link)
1.11.2005 14:18
camlost
Na druhou stranu to zase tak často nepotřebujete. Můžete si třeba pomoci formátovacím řetězcem (jako to dělá printf), nebo můžete počet parametrů získat analýzou dat, která hodláte zpracovat. Záleží na tom, co přesně chcete udělat.

DISKUZE

více výstupních bodů funkce 27.9.2005 10:58 camlost
|- Re: více výstupních bodů funkce 27.9.2005 11:09 Jan Němec
|- Re: více výstupních bodů funkce 27.9.2005 13:26 Aleš Hakl
| L Re: více výstupních bodů funkce 1.11.2005 14:13 camlost
L Re: více výstupních bodů funkce 3.10.2005 17:39 Jakub Jochec
Spis nez nejake flames by me osobne zajimalo toto... 3.10.2005 17:59 Jakub Jochec
|- Re: Spis nez nejake flames by me osobne zajimalo toto... 3.10.2005 18:17 Aleš Hakl
L Re: Spis nez nejake flames by me osobne zajimalo toto... 4.10.2005 08:08 Jan Němec
Jde to udělat líp ? 17.10.2005 19:08 Michal marwin
  |- Re: Jde to udělat líp ? 17.10.2005 23:49 Aleš Hakl
  L Re: Jde to udělat líp ? 1.11.2005 14:18 camlost




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

14.11.2017 16:56 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tradičně první čtvrtek před třetím pátkem v měsíci: 16. listopadu od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.11.2017 11:06 /Redakce Linuxsoft.cz
PR: 4. ročník odborné IT konference na téma Datová centra pro business proběhne již ve čtvrtek 23. listopadu 2017 v konferenčním centru Vavruška, v paláci Charitas, Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00. Konference o návrhu, budování, správě a efektivním využívání datových center nabídne odpovědi na aktuální a často řešené otázky, např Jaké jsou aktuální trendy v oblasti datových center a jak je využít pro vlastní prospěch? Jak zajistit pro firmu či jinou organizaci odpovídající služby datových center? Podle jakých kritérií vybrat dodavatele služeb? Jak volit součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně spravovat datové centrum? Jak eliminovat možná rizika? apod.
Přidat komentář

13.9.2017 8:00 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

15.12.2017 15:11 / Petit
freehold nj

15.12.2017 15:06 / Petit
nj freehold

5.12.2017 11:50 / Thomas
kitchen renovations

18.9.2017 14:37 / Rojas
high security vault

15.9.2017 7:33 / Wilson
new zealand childcare jobs

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze