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 12:22 | Pozvánky

Konference DevConf.CZ 2020, již dvanáctý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne v Brně na FIT VUT od 24. do 26. ledna 2020. Zveřejněn byl program konference a spuštěna byla povinná a bezplatná registrace.

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

Příspěvek Prozkoumejte Česko na Wikidatech: druhý díl zajímavých Wikidata Queries na blogu Wikimedie Česká republika je volným pokračováním příspěvku Prozkoumejte Česko na Wikidatech: 10 nejlepších Queries datového žurnalisty z července 2017. Tentokrát jsou díky Wikidatům a SPARQL zobrazeny Železniční tratě v Česku, Díly pořadu Gebrian VS na mapě nebo Citace vědeckých článků – srovnání českých univerzit, na níž publikující autoři působí.

Ladislav Hagara | Komentářů: 0
včera 19:44 | Komunita

Ovlivnit Ubuntu 20.04 LTS lze vyplněním dotazníku. Více v příspěvku na blogu Ubuntu.

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

Na stránkách české komunity Fedory vyšel zajímavý článek o tom, jak se generují flatpakové balíčky z již existujících balíčků RPM.

KOLEGA | Komentářů: 7
včera 12:22 | Zajímavý článek

Donald Ervin Knuth, přední informatik a emeritní profesor na Stanfordově univerzitě, rozšířil svou mnohasvazkovou odbornou monografii The Art of Computer Programming (TAOCP), v českém překladu Umění programování, o Volume 4, Fascicle 5. Donald Knuth svou novou knihu představil ve své přednášce Pi and The Art of Computer Programming.

Ladislav Hagara | Komentářů: 32
8.12. 11:44 | Zajímavý článek

Arsenij Zinčenko v zápisku sdílí technické poznámky o tom, co je to „klíčenka“ (keyring) v Linuxu a v desktopovém prostředí, jak to souvisí se Secret Service a D-Bus, včetně příkladů. Význam těchto služeb spočívá v uložení a následném poskytování autentizačních údajů.

Fluttershy, yay! | Komentářů: 0
7.12. 01:44 | Nová verze

V únoru 2014 bylo hlasováním rozhodnuto, že výchozím init systémem v Debianu je systemd. V listopadu stejného roku bylo hlasováním rozhodnuto, že o podpoře dalších init systémů v Debianu není celoprojektové hlasování nutné. Po pěti letech už ale hlasování o init systémech a systemd nutné je. Vybírá se z 8 možností. Výsledek hlasování bude zveřejněn po 27. prosinci.

Ladislav Hagara | Komentářů: 22
7.12. 00:11 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot, se rozhodl, že svůj komiks vydá také knižně a ve vlastní režii. Komiks již knižně vyšel ve francouzštině ve vydavatelství Glénat. David Revoy jej vydá v angličtině a použije pouze svobodný software. O své zkušenosti se dělí ve dvou příspěvcích na svém blogu. Z plánovaných dvou týdnů práce se staly dva měsíce. Vydání před Vánocemi se nestihne. Kontrolní výtisk má příliš jasné barvy, obrázky v knihách od Glénatu vypadají mnohem lépe, …

Ladislav Hagara | Komentářů: 1
6.12. 20:44 | IT novinky

Mezinárodní konsorcium W3C (World Wide Web Consortium) vydalo verzi 1.0 základní specifikace WebAssembly a po HTML, CSS a JavaScriptu prohlásilo WebAssembly za čtvrtý oficiální jazyk pro web.

Ladislav Hagara | Komentářů: 26
6.12. 13:33 | Komunita

Hlasování o obrázku v okně O Inkscapu 1.0 pokračuje druhým kolem. Ze 124 obrázků postoupilo do finálního hlasování 5 s nejvíce hlasy. Výsledek hlasování bude zveřejněn po jeho ukončení, tj. po 15. prosinci.

Ladislav Hagara | Komentářů: 8
Jaké hodinky nosíte (nejčastěji)?
 (23%)
 (5%)
 (17%)
 (54%)
Celkem 531 hlasů
 Komentářů: 135, poslední 6.12. 20:54
Rozcestník

www.AutoDoc.Cz

Dotaz: Pole v C

16.3. 19:48 nikdonemo
Pole v C
Přečteno: 561×
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í 3× (pc2005, Bherzet, Andrej)
16.3. 19:59 Michal Kubeček | skóre: 71 | 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. 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. 09:07 Michal Kubeček | skóre: 71 | 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. 18:42 debian+
Rozbalit Rozbalit vše Re: Pole v C
Dik. O tom sposobe som nevedel.
17.3. 18:07 qweasd
Rozbalit Rozbalit vše Re: Pole v C
#define SDOREPLY(index, subindex,len,val)
:-D
18.3. 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. 10:59 Michal Kubeček | skóre: 71 | 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. 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. 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. 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.