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 19:55 | Nová verze

Po dvou letech od vydání verze 3.0 byla vydána nová major verze 4.0 nástrojů LXC, LXD a LXCFS pro kontejnerovou virtualizaci LXC (LinuX Containers). Jedná se o verzi s dlouhodobou podporou (LTS). Ta končí v červnu 2025. Přehled novinek v jednotlivých oznámeních o vydání: LXC, LXD a LXCFS.

Ladislav Hagara | Komentářů: 0
dnes 16:11 | Humor

Řada firem své letošní již připravené aprílové žertíky kvůli SARS-CoV-2 a COVID-19 nezveřejnila. Přehled zveřejněných například na April Fools' Day On The Web. Na CoinMarketCapu byla přidána nová kryptoměna: toaleťáky. Ve hře World of Tanks jsou vylepšené tanky, v PUBG nový herní mód Fantasy Battle Royale, …

Ladislav Hagara | Komentářů: 3
dnes 15:22 | Zajímavý projekt

Komunity KDE a GNOME, které doposud vyvíjely příslušná desktopová prostředí, se rozhodly přestat tříštit síly a představují společný projekt KNOME, který nabídne konfigurovatelnost GNOME a jednoduchost KDE v jednom balíčku. Staví na technologiích QTK3 a Kutter.

Fluttershy, yay! | Komentářů: 20
dnes 14:11 | Nová verze

Tradičně na apríla byla vydána nová stabilní verze OpenTTD (Wikipedie), tj. open source klonu hry Transport Tycoon Deluxe. Přehled novinek v nejnovější verzi 1.10.0 v seznamu změn. Starší verzi OpenTTD lze vyzkoušet také v prohlížeči.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Nová verze

Po čtyřech a půl měsících vývoje od vydání verze 5.3 byla vydána nová verze 5.4 svobodného open source redakčního systému WordPress. Kódové označení Adderley bylo vybráno na počest amerického jazzového trumpetisty Nata Adderleyho.

Ladislav Hagara | Komentářů: 0
včera 23:44 | IT novinky

Association for Computing Machinery vzhledem k probíhající pandemii COVID-19 nabízí bezplatný přístup do databáze publikací ACM Digital Library, a to do 30. června 2020.

Fluttershy, yay! | Komentářů: 2
včera 23:11 | IT novinky

Humble Bundle nabízí balík her (některých multiplatformních a/nebo bez DRM), knih, komiksů,… za cenu alespoň €28. Akce Humble Conquer COVID-19 Bundle probíhá do 7. dubna. Výtěžek bude věnován humanitárním/charitativním organizacím Lékaři bez hranic, Direct Relief, International Rescue Committee a Partners In Health.

Fluttershy, yay! | Komentářů: 7
včera 18:44 | Komunita

Český LibreOffice tým vydává překlad příručky LibreOffice Online. Příručka vznikla překladem anglického originálu, který byl vytvořen v rámci projektu Google Season of Docs 2019. Příručka je ke stažení na českých stránkách LibreOffice. Český tým pokračuje s překladem příručky Začínáme s LibreOffice a hledá další dobrovolníky pro překlad z angličtiny a revize přeloženého textu.

Zdeněk Crhonek | Komentářů: 0
včera 17:55 | Nová verze

Theia je nové modulární vývojové prostředí (IDE) určené k běhu jako webová aplikace a modifikovatelné pomocí doplňků kompatibilních s MS Visual Studio Code. Vývoj zaštiťuje Eclipse Foundation. Více v oznámení vydání verze 1.0.

Fluttershy, yay! | Komentářů: 1
včera 17:44 | Upozornění

V souvislosti s nedávnými kybernetickými útoky na nemocniční zařízení v České republice nabídl Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) ve spolupráci se sdružením CZ.NIC, správcem české národní domény a provozovatelem Národního bezpečnostního týmu CSIRT.CZ, pomoc klíčovým zdravotnickým subjektům, na které se vztahuje reaktivní opatření NÚKIB.

Ladislav Hagara | Komentářů: 2
Chodíte do práce?
 (11%)
 (0%)
 (7%)
 (0%)
 (61%)
 (21%)
 (0%)
Celkem 28 hlasů
 Komentářů: 1, poslední dnes 14:40
Rozcestník

www.AutoDoc.Cz

Dotaz: Pole v C

16.3.2019 19:48 nikdonemo
Pole v C
Přečteno: 564×
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.2019 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.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: 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.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: 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.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.