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 14:22 | Zajímavý projekt

GitHub v příspěvku na svém blogu představil GitHub Sponsors. Jedná se o další z možností, jak finančně podpořit vývojáře open source softwaru. Podrobnosti v často kladených dotazech (FAQ).

Ladislav Hagara | Komentářů: 8
dnes 13:44 | Zajímavý software

Společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux vydala počítačovou hru Total War: Three Kingdoms (Wikipedie) pro Linux. Koupit ji lze za 59,99 €. Tentokrát byla verze pro Linux vydána ve stejný den jako verze pro Microsoft Windows.

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

Po téměř 11 měsících vývoje od vydání verze 5.28 byla vydána nová stabilní verze 5.30 programovacího jazyka Perl. Do vývoje se zapojilo 58 vývojářů. Změněno bylo přibližně 620 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

Ladislav Hagara | Komentářů: 1
včera 16:44 | Nová verze

Bylo vydáno openSUSE Leap 15.1. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 11:55 | Nová verze

Byla vydána verze 3.14 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl aktualizován na verzi 8.5. Řešeno je také několik bezpečnostních chyb. Především bezpečnostní chyby v procesorech Intel.

Ladislav Hagara | Komentářů: 1
včera 11:33 | Nová verze

Byla vydána nová verze 2019.2 průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v seznamu změn. Současně byl ve verzi 2019.2 vydán také Kali Linux NetHunter (Wikipedie), tj. obrazy s nástroji z Kali Linuxu pro chytré telefony a tablety.

Ladislav Hagara | Komentářů: 0
včera 11:22 | Nová verze

Vyšel webový prohlížeč Tor Browser, založený na Firefoxu (60.7) a zaměřený na ochranu soukromí, ve verzi 8.5. Mění vzhled, zlepšuje přístupnost a nově je prohlášen za stabilní na Androidu.

Fluttershy, yay! | Komentářů: 0
21.5. 16:11 | Nová verze

Byl vydán Mozilla Firefox 67.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Zdůraznit lze blokování těžby kryptoměn a otisku prohlížeče, viditelnější účet Firefoxu nebo rychlý přístup ke správci hesel.

Ladislav Hagara | Komentářů: 7
21.5. 03:33 | Komunita

Rozšířená podpora operačního systémy Microsoft Windows 7 skončí 14. ledna 2020. Poté je možné využít placené podpory, přejít na Windows 10 nebo prostě na Linux. Vláda Jižní Koreje zkouší Linux. Přechod na Linux včetně nákupu nových počítačů by ji měl vyjít na 655 milionů dolarů.

Ladislav Hagara | Komentářů: 33
21.5. 02:22 | IT novinky

CZ.NIC ODVR (Otevřené DNSSEC Validující Resolvery) nově podporují vedle DNS-over-TLS (DoT) také DNS-over-HTTPS (DoH). DoH lze vyzkoušet ve Firefoxu od verze 62, Chrome od verze 66 nebo Bromite od verze 67.

Ladislav Hagara | Komentářů: 0
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (49%)
 (25%)
 (24%)
 (2%)
Celkem 338 hlasů
 Komentářů: 28, poslední 21.5. 04:02
Rozcestník

Dotaz: Pole v C

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