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í
×
    dnes 23:22 | Pozvánky

    Chybí vám někdo, s kým byste si popovídali o bastlení, technice, počítačích a vědě? Nechcete riskovat debatu o sportu u piva v hospodě? Pak doražte na virtuální pokec u virtuálního piva v rámci Virtuální Bastlírny organizované strahovským MacGyverem již tento čtvrtek. Možná se ptáte, co se tak může probírat? Dají se probrat slavná výročí - kromě 55 let obvodu 555 (což je mimochodem prý andělské číslo) a vzpomínky na firmu Signetics -

    … více »
    bkralik | Komentářů: 0
    dnes 23:11 | Zajímavý software

    GTK2-NG je komunitní fork GTK 2.24 (aktuální verze je 4.22). Oznámení a diskuse v diskusním fóru Devuanu, forku Debianu bez systemd. Není to jediný fork GTK 2. Ardour je například postaven na vlastním forku GTK 2 s názvem YTK.

    Ladislav Hagara | Komentářů: 0
    dnes 17:33 | Pozvánky

    V neděli 17. května 2026 proběhne v Českých Budějovicích první MobileLinux Hackday zaměřený na Linux v mobilech, embedded platformy a open source hardware. Po sedmi úspěšných měsíčních setkáních v Praze se akce přesouvá také do jižních Čech, aby se komunita mobilního Linuxu mohla potkat i mimo hlavní město. Akce se uskuteční v konferenčním sále Vajgar v Clarion Congress Hotelu (Pražská tř. 2306/14) se zahájením mezi 14:00 až 15:00 a … více »

    lkocman | Komentářů: 0
    dnes 15:00 | Komunita

    Vývojáři Debianu zhruba v polovině vývojového cyklu Debianu 14 s kódovým názvem Forky rozhodli, že Debian musí dodávat reprodukovatelné balíčky, tj. kdokoli si může nezávisle ověřit, že daný binární balíček vznikl překladem a sestavením z konkrétních zdrojových kódů. Aktuálně je reprodukovatelných 98,29 % balíčků.

    Ladislav Hagara | Komentářů: 0
    dnes 14:11 | Bezpečnostní upozornění

    Německý e-shop Škoda Auto byl hacknut. Útočníci získali přístup k uživatelským údajům (jméno, adresa, e-mail, heslo, telefon, …).

    Ladislav Hagara | Komentářů: 2
    dnes 11:22 | Pozvánky

    Na webu konference Den IPv6 2026, která se uskuteční 4. června v Národní technické knihovně v pražských Dejvicích, je nyní k dispozici kompletní program této tradiční akce věnované tématům spojeným s protokolem IPv6. Na celodenní pásmo přednášek je třeba se přihlásit a zaplatit účastnický poplatek 242 korun. Registrační formulář najdou zájemci opět na webu akce. Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 1
    včera 23:33 | Zajímavý software

    Byl představen emulátor terminálu Ratty (GitHub) s podporu 3D grafiky přímo v terminálu. Inspirací byl operační systém TempleOS od Terryho Davise. Ratty je napsán v jazyce Rust. Využívá knihovnu Ratatui pro tvorbu rozhraní a herní engine Bevy pro 3D vykreslování.

    Ladislav Hagara | Komentářů: 4
    včera 17:55 | IT novinky

    Evropské instituce i některé americké státy dál zpřísňují pravidla pro ověřování věku na internetu. Cílem je zabránit dětem v přístupu k obsahu pro dospělé. Úřady ale narážejí na zásadní problém – stále více lidí používá VPN, tedy služby umožňující skrýt identitu i skutečnou polohu na internetu. Právě VPN nyní Evropská parlamentní výzkumná služba (EPRS) označila za „mezeru v legislativě, kterou je potřeba uzavřít“ [Novinky.cz].

    Ladislav Hagara | Komentářů: 34
    včera 17:22 | Nová verze

    Multiplatformní open source aplikace pro psaní poznámek Joplin (Wikipedie) byla vydána v nové verzi 3.6. Nově lze mít v poznámkách embedovaný externí obsah, např. YouTube videa.

    Ladislav Hagara | Komentářů: 2
    včera 16:44 | Komunita

    Open Hardware Summit 2026 organizovaný OSHWA (Open Source Hardware Association) proběhne o víkendu 23. a 24. května v Berlíně na Technické univerzitě Berlín.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (25%)
    Celkem 1592 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: C; pointer na fciu v strukture

    20.12.2010 16:50 mato
    C; pointer na fciu v strukture
    Přečteno: 543×
    Cafte, pri rieseni problemu sm narazil na zaujimavy problem, pri ktorom som si nie celkom isty. Otazka znie: je spravne menit adresu fcie pocas jej behu (po zavolani)? Otazka asi nie je polozena uplne spravne .. na ukazku kod:
    #include <stdio.h>
    
    /* fwd deklaracia */
    struct point __point;
    
    /* exec fcia */
    typedef int(*f_execute)(struct point* p);
    
    struct point {
            int x;
            int y;
            int z;
    
            f_execute       exec;
    };
    
    int exec_primary(struct point* p);
    int exec_secondary(struct point* p);
    
    int main()
    {
            struct point p;
    
            p.x = p.y = p.z = 0;
            p.exec = &exec_primary;
    
            /* execute */
            while (p.exec != NULL) {
                    p.exec(&p);
    
                    printf ("DEBUG: p: [%d,%d,%d]\n", p.x, p.y, p.z);
            }
    
            return 0;
    }
    
    int exec_primary(struct point* p)
    {
            p->x += 4;
            p->y += 2;
            p->z += 1;
    
            p->exec = &exec_secondary;
            return 0;
    }
    
    int exec_secondary(struct point* p)
    {
            p->x *= 2;
            p->y *= 4;
            p->z *= 3;
    
            p->exec = NULL;
            return 0;
    }
    
    
    Nech mam struktutu point, ktora v sebe ma okrem suradnic aj pointer na fciu, ktoru ma vykonat. Na zaciatku je exec nastaveny na prvu, zakladnu exec fciu exec_primary. Ta pocas svojho behu zmeni point exec pointer na druhu fciu, exec_secondary
    mozem mat zadefinovany neobmedzeny pocet exec fcii, ktory nie je vopred znamy, pripadne sa dynamicky meni od systemu

    vsetko funguje ako ma, no nie som si isty ci je toto spravne, resp. uplne koser riesenie.

    musim si pozriet hlbsie teoriu o tom, ako su fcie volane (tj. mngmnt ohladne volani fcii), ale mozno mi niektori z vas budete vediet poradit, resp. nasmerovat, ci je takyto sposob v poriadku

    vopred vdaka

    Odpovědi

    20.12.2010 17:59 R
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    Nemenis "adresu funkcie", ale menis nejaky pointer ulozeny v strukture. Ze je v nom ulozena adresa samotnej funkcie, to je nezaujimave. Volanie funkcie uz bolo vykonane a do dalsieho volania ten pointer nebude potrebny.

    Pre pochopenie si predstav kod v assembleri - funkciu zavolas (CALL), potom bezi a nakoniec sa vrati (RET).
    20.12.2010 18:52 mato
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    ano, pravda..zle som sa vyjadril v tej otazke ..

    dobre si to naznacil s tym CALL/RET .. RET bude adresa <main>; to ze je v strukture pointer na adresu, ktoru som zavolal a zaroven strukturu pozmenil je jedno (tj. je jedno ci menil integer alebo pointer (co je koniec koncov zas len cislo)

    .. uz sa dlhsi cas chystam pozriet si info ohladne volanie fcia a mngmnt stack-u .. zimne vecery su ten idealny cas

    diq

    21.12.2010 12:10 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    No nevím jakou logiku se tím snažíte naprogramovat, ale nebylo by jednodušší prostě ty funkce zavolat rovnou za sebou?
    In Ada the typical infinite loop would normally be terminated by detonation.
    21.12.2010 12:46 mato
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    ten horeuvedeny priklad sluzi len ako ukazka principu, co pouzivam vo svojom kode ja ..

    problem spociva v tom, ze pocet funkcii nie je vopred znamy a je definovany uzivatelom .. moze ich byt lubovolne vela, kde posledna fcia musi byt NULL.
    jedna sa (resp. bude sa jednat) o kniznicu simulacneho jadra, kde entita zijuca v systeme prechadza lubovolnym poctom eventov; zo systemu odchadza, ked je jej exec nastaveny na NULL

    pavlix avatar 21.12.2010 19:30 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    Pak nevidím problém během volání funkce ukazatel nastavit na novou funkci. S CALL a RET to nemá nic společného. Jediná souvislost mezi strukturou a funkcí je v tomhle případě, že se struktura na funkci odkazuje.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    21.12.2010 19:51 __dark__
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    Tvuj pristup je v poradku. Adresa funkce se nacte pokazde, kdyz se ma funkce zavolat. Jak uz bylo zmineno, ty nemenis adresu te funkce, ale jen ukazatel. Akorat si ted nejsem jisty tim struct point __point;, nemelo by tam byt jen struct point;?
    22.12.2010 10:10 mato
    Rozbalit Rozbalit vše Re: C; pointer na fciu v strukture
    s tou fwd declaraciou mas pravdu, uplne by postacilo
    
    struct point;
    
    __point je uz zadef. premenna, co trosku mozno nema zmysel .. ja to (zne)uzivam na to, aby som videl, ze je to to fwd declaracia - bije mi to do oci hned ked otvorim zdrojak ..

    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.