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

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 10
    včera 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    včera 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

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

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 14
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Rozcestník

    Dotaz: Pole v C

    16.3.2019 19:48 nikdonemo
    Pole v C
    Přečteno: 629×
    Dobrý den, při programování CAN Open protokolu jsem v jedné ukázce narazil na zajímavé řešení jak postavit adresář deskriptorů (OD).Když to ale napíšu do svého programu tak to hází error. Nejprve udělám makro, které je připraveno pro 4 hodnoty. Následně postavím pole, které se znažím pomocí makra naplnit.

    ..............................................................

    #define SDOREPLY(index, subindex,len,val)

    uint32_t SDOResponseTable[] = {

        SDOREPLY(0x1018, 0x01, 4, OD_VENDOR_ID),//zde to hází error

        SDOREPLY(0x1018, 0x02, 4, OD_PRODUCT_CODE),

        SDOREPLY(0x1018, 0x03, 4, OD_REVISION),

        SDOREPLY(0xFFFF, 0xFF, 0x0F, 0xFFFFFFFFL)

    };

    .................................................................

    Error píše: expected expression before ',' token

    Šlo by to udělat pomocí vícerozměrného pole, ale to se mi zdá jako velmi nepohodlná cesta a špatně by se s daty dál zacházelo. Hlavně by to nebylo tak pěkně průhledné. Děkuji za všechny rady.

    Řešení dotazu:


    Odpovědi

    Řešení 1× (pc2005)
    16.3.2019 19:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Pole v C

    Asi jste zapomněl na definici toho makra, protože takhle vám vždy expanduje na prázdný text, takže pak vlastně překládáte

    uint32_t SDOResponseTable[] = {
        ,
        ,
        ,
        
    };
    

    což pochopitelně neprojde.

    16.3.2019 23:02 debian+
    Rozbalit Rozbalit vše Re: Pole v C
    Do buducna, ak chces vidiet, aky je vystup po predprocesore, tak pouzi:
    cpp souce.c -o source_cpp.h
    17.3.2019 09:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Pole v C
    Případně "gcc -E". To má výhodu, že stačí vzít příkaz, kterým se soubor překládá, nahradit v něm "-c" přepínačem "-E" a preprocesor bude spuštěný přesně tak, jak by to bylo při překladu.
    17.3.2019 18:42 debian+
    Rozbalit Rozbalit vše Re: Pole v C
    Dik. O tom sposobe som nevedel.
    17.3.2019 18:07 qweasd
    Rozbalit Rozbalit vše Re: Pole v C
    #define SDOREPLY(index, subindex,len,val)
    :-D
    18.3.2019 10:34 nikdonemo
    Rozbalit Rozbalit vše Re: Pole v C
    Tak nakonec jsem makro odebral a pole udělal bez těch maker. Makro jsem definované měl, takže bude někde nějaká blbost. Super věc to s preprocesorem. O tom jsem neměl tušení.

    Děkuji za rady :)
    18.3.2019 10:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Pole v C
    Makro jsem definované měl

    Ano, ale tak, že vždy expandovalo na prázdný řetězec, což přesně odpovídá té chybě, kterou jste uvedl.

    18.3.2019 12:09 sad
    Rozbalit Rozbalit vše Re: Pole v C
    Příklady použití preprocesoru.
    #define square(x)    ((x) * (x))
    
    nebo
    #define getc(p)      (--(p)->cnt >= 0 \
                        ? (unsigned char) *(p)->ptr++ : _fillbuf(p))
    
    Za povšimnutí stojí závorky kolem argumentů a zpětné lomítko na konci pokračující řádky. Na větší funkce bych preprocesor raději nepoužíval.
    18.3.2019 13:49 debian+
    Rozbalit Rozbalit vše Re: Pole v C
    Nie je problem pouzivaj aj zlozitejsie vyrazy, ale potom ocakavaj pracu alebo otestuvavaj vysledok s/po predprocesore.
    18.3.2019 14:51 debian+
    Rozbalit Rozbalit vše Re: Pole v C
    Napr. ale aj:
    /* niekde definovane v kode alebo v includovanom subore */
    #define UNIX
    
    #ifdef UNIX
    	puts("Program spustas na typovo Unixovom operacnom systeme.");
    #endif

    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.