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 03:11 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.

    Ladislav Hagara | Komentářů: 0
    dnes 02:33 | IT novinky

    U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.

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

    Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.

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

    Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).

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

    Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    15.11. 16:11 | Nová verze

    Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    15.11. 12:11 | IT novinky

    Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.

    Ladislav Hagara | Komentářů: 5
    14.11. 14:22 | Bezpečnostní upozornění

    V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.

    Ladislav Hagara | Komentářů: 5
    14.11. 13:22 | Nová verze

    Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    14.11. 10:33 | IT novinky

    Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.

    Ladislav Hagara | Komentářů: 50
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (18%)
     (18%)
     (23%)
     (15%)
     (23%)
     (16%)
     (16%)
    Celkem 358 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    ⧠ A = 0 avatar 11.3.2017 20:43 ⧠ A = 0 | skóre: 11 | blog: Technokratovo_zrcadlo | Helsinki
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    А какой же это блог?
    Nevolte zmrdy.
    11.3.2017 21:34 Dušan Kreheľ | skóre: 9 | blog: krehel_sk___informovat_o_novych_verziach_softveru | Prešov
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Definície (lokalných) funkcií nedefinuj v main(), ale mimo main(), pred definície globalných premenných.

    Píš štylom, že main() funkcia je ako posledná v zdrojáku, alebo na konci je posledná najdôležitejšia funkcia v zdrojáku, ak sa tam nenachádza funkcia main.

    Tá podmienka if je zbytočná:
    if (str[strlen(str) - 1] == '\n')
       str[strlen(str) - 1] = '\0';
    Lebo:
    fgets()  reads in at most one less than size characters from stream and
           stores them into the buffer pointed to by s.
    echo -e "123456"|./check_end_fgets 
    49 '1'
    50 '2'
    51 '3'
    0 ''
    
    Testovací kód:
    #include <stdio.h>
    #include <stdlib.h>
    
    void check_end_fgets()
    {
    	char buffer[4];
    	int a;
    	char *p;
    	
    	if(fgets(buffer, 4, stdin) == NULL)
    		return;
    	
    	for(p=buffer,a=0;a<4 && *p != '\n'; a++,p++)
    		printf("%d '%c'\n", *p, *p);
    	
    }
    
    int main(void)
    {
    	check_end_fgets();
    	return 0;
    }
    
    11.3.2017 21:52 Dušan Kreheľ | skóre: 9 | blog: krehel_sk___informovat_o_novych_verziach_softveru | Prešov
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Máš chybu:
    echo "LLLLLLLLLLLLLL"|./cod
    upper macro: 7
    ctype function: 14
    
    Oprav si chybu vo funkcií uppermacro().
    12.3.2017 07:38 sad
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Tu chybu jsem tam udělal schválně. Jedná se o srovnání dvou stejných funkcí, které vrací počet velikých písmen s tím rozdílem, že jedna používá vlastní makro myupper() a druhá funkci isupper() ze standardní knihovny.

    Problém je v tom, že se ta dekrementace do makra přenese dvakrát:
    ((*str++) >= 'A' && (*str++) <= 'Z')
    
    12.3.2017 07:39 sad
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Inkrementace.
    12.3.2017 09:17 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Proto je např. v manuálové stránce ke getc() upozornění, že na rozdíl od fgetc() může být implementována jako makro, které argument vyhodnocuje víc než jednou.
    12.3.2017 09:54 sad
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Tak to jsem nevěděl. Díky za upozornění.
    11.3.2017 21:26 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Hodil by se k tomu nejaky komentar...
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    11.3.2017 21:57 Dušan Kreheľ | skóre: 9 | blog: krehel_sk___informovat_o_novych_verziach_softveru | Prešov
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Pozri komentár na konci zdrojáku.
    12.3.2017 11:08 Dušan Kreheľ | skóre: 9 | blog: krehel_sk___informovat_o_novych_verziach_softveru | Prešov
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Poznáš príkaz:
    cpp source.c -o source_cpp.h
    12.3.2017 13:02 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Ano, znam preprocesor i jeho ulohu a to do te miry, abych vedel, ze vystupem preprocesoru neni hlavickovy soubor, ale soubor ciste v jazyce C.

    Jinak ma poznamka se tykala toho, ze bez dalsiho komentare je ten clanek zbytecny. Trochu zkuseny programator na prvni pohled vidi, v cem je problem. Zacatecnikovi to moc nerekne a ani nevi, jak se z toho poucit pri psani maker.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    11.3.2017 23:48 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    #define myupper(c) ((c) >= 'A' && (c) <= 'Z')

    se dá nahradit něčim jako

    #define myupper(c) ((unsigned long)(c - 'A') <= 'Z' - 'A')

    (ale je to trochu prasárna)
    12.3.2017 02:30 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    C makra? Tohle byla taky vtipná situace. Stringifikace jména argumentu pro vnitřní makro :-D.
    13.3.2017 19:48 Odin1918 | skóre: 6 | blog: Valhalla
    Rozbalit Rozbalit vše Re: Side Effects of C Macros
    Pouzivat makra na toto je antipattern a stejne tak je antipattern inkrementovat argument v ramci volani procedury, ktera je v tomto pripade jeste k tomu makrem. Vede to k errorprone kodu, ktery se neda cist. Vice radek muze byt nekdy citelnejsi.

    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.