abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 15:00 | Nová verze

    Všem vše nejlepší do nového roku 2026.

    Ladislav Hagara | Komentářů: 7
    včera 13:33 | Zajímavý software

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.60. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Zajímavý článek

    Daniel Stenberg na svém blogu informuje, že po strncpy() byla ze zdrojových kódů curlu odstraněna také všechna volání funkce strcpy(). Funkci strcpy() nahradili vlastní funkcí curlx_strcopy().

    Ladislav Hagara | Komentářů: 2
    včera 03:00 | Nová verze

    Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    30.12. 18:55 | IT novinky

    Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.

    Ladislav Hagara | Komentářů: 0
    30.12. 16:11 | Komunita

    Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.

    Ladislav Hagara | Komentářů: 0
    30.12. 03:33 | Bezpečnostní upozornění

    V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.

    Ladislav Hagara | Komentářů: 0
    29.12. 23:11 | IT novinky

    Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.

    NUKE GAZA! 🎆 | Komentářů: 14
    29.12. 15:55 | Komunita

    FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.

    NUKE GAZA! 🎆 | Komentářů: 7
    29.12. 15:44 | Zajímavý software

    K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.

    NUKE GAZA! 🎆 | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (29%)
     (1%)
     (28%)
     (1%)
     (1%)
     (1%)
     (10%)
     (10%)
     (18%)
    Celkem 224 hlasů
     Komentářů: 22, poslední včera 15:34
    Rozcestník


    Vložit další komentář
    26.3.2005 10:11 Dataman
    Rozbalit Rozbalit vše Pomalé, paměť
    Nikdy nejde o to napsat co nejméně znaků. Důležitější je spíše optimalizace. Rekurzivní funkce ti zabere spoustu paměti. Schválně, jak ti bude u funkce strlen trvat, než sjede dvacet tisíc znaků a kolik ti zabere paměti. Ta moje ti paměti bude zabírat pořád stejně, ta tvoje ji bude neustále krást.
    int strlen(char *a){
      int i=0;
      while(*a)
      {
        ++i;
        ++a;
      }
      return i;
    }
    
    Luk avatar 26.3.2005 11:35 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Pomalé, paměť
    Přesně tak. Rekurzivní funkce se hodí prakticky jen jako cvičení, jako ukázka, že to jde. Ale jsou vždycky pomalejší než totéž udělané iterací, navíc spotřebovávají paměť na zásobníku a ten navíc při "větším" počtu vnoření přeteče. Platí známé pravidlo, co jde udělat rekurzí, jde udělat iterací.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    27.3.2005 16:34 3018736794024648 | blog: plathel
    Rozbalit Rozbalit vše Re: Pomalé, paměť

    ech.. samozřejmě. úloha zněla ale "nejméně znaků", nikoli nejvýkonnější. Prostě toto není otázka z reálného světa, a nemá smysl se ptát jestli úloha "najděte nejkratší řešení" má smysl, stejně jako nemá smysl mnoho lidské činnosti.

    já vím že rekurze je v tomto případě úplná blbost. Nicméně musíš uznat, že pomocí rekurze je to řešení kratší než jiná, běžnější řešení.

    26.3.2005 11:15 Martin Čížek | skóre: 20 | Praha
    Rozbalit Rozbalit vše strcpy()
    char *strcpy(char *d, const char *s) 
    {
      char *ret = d;
      while ((*d++ = *c++))
        ;
      return ret;
    }
    

    P. S. K ,,sestřesení'' kódu do jedné řádky se uchylovat nebudu :-).

    P. P. S. Obě funkce se obvykle implementují v asembleru, ,,výkonný kód'' je na i386 tvořen pomocí jedné prefixované instrukce (+ nějaký ten vstup do funkce, cld a leave).

    Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
    26.3.2005 12:09 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: strcpy()
    Ad P.P.S. Obvykle už ne. Obvykle je slušný kompilátor (gcc) implementuje přímo a dokáže optimalizovat in-line.
    26.3.2005 19:48 Martin Čížek | skóre: 20 | Praha
    Rozbalit Rozbalit vše Re: strcpy()
    Obecně souhlasím -- je pravda, že mikrooptimalizace se stále více nechávají na kompilátoru, ale existující implementace těchto základních knihovních funkcí na to obvykle nespoléhají. V glibc jsou tyto jednoduché funkce napsané v asembleru pro všechny možné architektury, plus je tam jedna generic implementace v čistém C.

    Jak tak na to koukám, v glibc jsou i ,,jemnější'' verze pro i486, i586 atd., které jsou implemetované v asembleru bez prefixových instrukcí (což je asi na procesorech s RISCovými rysy rychlejší).
    Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
    26.3.2005 20:04 Martin Čížek | skóre: 20 | Praha
    Rozbalit Rozbalit vše Re: strcpy()
    Špatně jsem si to přečetl tvůj příspěvek, máš samozřejmě pravdu. Ale to není v rozporu s tvrzením o implementaci knihovních funkcí strlen() a strcpy(), i když je pak třeba optimalizovaný kód nepoužívá :-).
    Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
    27.3.2005 16:44 3018736794024648 | blog: plathel
    Rozbalit Rozbalit vše Re: strcpy()
    ježda. samozřejmě. jenže tohle řešení má 35 platných znaků.. moje má 33 ;) proto jsem ho dával do blogu, protože je kratší než tahle klasika
    26.8.2010 22:08 Jan Turoň
    Rozbalit Rozbalit vše Re: Nejkratší implementace strlen a strcpy
    tahle je taky zajímavá :-)
    int strlen(char *str) {
      int i=0;
      for(;*(str+i);i++);
      return i;
    }
    

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.