• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    REDGUY
    REDGUY --- ---
    XCHAOS: že ten zápis tedy není neplatný, ale pro standardní kontejnerové metody (které nevrací nic, ale pracují nad kontejnerem jako takovým) fakticky nepoužitelný (což vidím trochu jako design-flaw - ale prdlajs. Teda, samozrejme, ze to _ty_ vidis jako "design flaw" je pochopitelne mozny, ale v ramci koncepce a designu pythonu je to zcela umyslne a schvalne, kdyby metoda sort navic (krome toho trideni) vracela self, vedlo by to k mene prehlednemu kodu a zvysovalo riziko chyb kvuli aliasingu. Jestli chce setridenej list jako navratovou hodnotu, mas tady "sorted".

    XCHAOS: jak říkám, nevím, k čemu přesně dělá firmware - ne? A presto rikas, ze ho coder, jehoz kod nahodne zapisuje po pametu, umi dobre napsat? Hmmm... mozna kdybys konecne prestal mlzit a klickovat a konecne vysvetlil, co to je ten "coder" a jak poznas "coderskej" kod, tak by se to vyjasnilo. Nebo proste priznat, ze to bylo proste zase jen dalsi nesmyslny xplacnuti 8))

    ty už přesně víš, že je to minimálně firmware ke grafické kartě, nebo něčemu takovému - jo, uz jsem si rikal ze uz ses nejak dlouho nedopustil strawman fallacy 8)))
    XCHAOS
    XCHAOS --- ---
    SPIRALI: no jo, máš částečně pravdu, ale je to trochu složitější:

    >>> c=['b','a'].sort()
    >>> c
    >>>

    můžeš skutečně zavolat metodu nad objektem zapsaným jako literál (konstanta je blbý slovo, v tomhle případě), ale nemáš žádný způsob, jak se dostat k výsledku té metody, protože ten objekt, když na něj není referer, je vzápětí dealokován :-))

    no, jsme tu v C mírně offtopic :-) ale aspoň jsem si ujasnil, že ten zápis tedy není neplatný, ale pro standardní kontejnerové metody (které nevrací nic, ale pracují nad kontejnerem jako takovým) fakticky nepoužitelný (což vidím trochu jako design-flaw - mám potenciálně elegantní feature, která je mi ale k ničemu, protože v zájmu nějaké designové čistoty mi nevrací nic, na co bych mohl vytvořit nový referer...)
    SPIRALI
    SPIRALI --- ---
    XCHAOS: Omlouvam se ze vam do toho micham, ale tvrzeni o Pythonu mi prijde docela pochybne.
    Nevim presne co je "objektova konstanta", ale podle nazvu mi prijde celkem divne ze by immutable retezec tuto definici nesplnoval a mutable list ano
    REDGUY
    REDGUY --- ---
    XCHAOS: Hele, tvoje predstava o tom, kdo je koder zacina bejt fakt velmi bizarni:

    nevidím důvod, proč by coder nemohl napsat dobrej firmware

    versus nedavne

    co coder s C udělá [...] bez znalosti logiky toho jak funguje C. Proto mu kód bude zpočátku třeba fungovat, protože náhodou budou sahat do paměti někam, kde při námatkových pokusech většinou nenadělá škodu

    Hmmmm... takze "dobrej firmware" podle tebe psal clovek, kterej nahodne zapisuje do pameti a proste ma kliku, ze to (zatim) nedela skodu? Hmmmm... pozoruhodne 8))
    REDGUY
    REDGUY --- ---
    XCHAOS: což umožňuje lidem trochu chápat "co se děje uvnitř" (což u vyšších jazyků obecně nejde, a u C++ to vyžaduje holt jakýsi "absolutní sluch", který nemá každý - wtf? Prosim nejaky konkretni priklad toho, kdy v C++ "nemuzes chapat, co se deje uvnitr".
    XCHAOS
    XCHAOS --- ---
    BURAN: nevidím důvod, proč by coder nemohl napsat dobrej firmware, koneckonců :-) netuším co je to za produkty, ale pokud se tam nepoužívají nějaké složité datové struktury (kontejnery) a jde o to správně inicializovat 10 registrů, a odchytávat interrupy/obsluhovast řídící smyčku, tak asi na tom není příležitost, co na tom udělat nějak moc odlišně (akorát část coderů by to asi vůbec nevymyslela).

    jde o to, jestli si ten, kdo vymyslel ten algoritmus, a pak ho napsal v C - nebo jestli si jen přepsal nápad někoho jiného. podle mě coder je trochu překladatel z jednoho jazyka do druhého - z lidského do počítačového - ale vkládá do toho relativně málo vlastní invence. (to ještě neznamená, že taková profese není potřeba!)
    XCHAOS
    XCHAOS --- ---
    JANFROG: tak zase ne každá věc, kterou člověk pozná, ho nadchne... u PHP jsem "pozvedával obočí" nad nekonzistencemi od začátku, Perl zaujal, ale nenadchl.. zato třeba Python má podle mě tendenci okouzlit lidi, hledající nějaké zásadnější "design patterns", určitou konzistenci ... i když takové (',').join(...) je trochu pekelná konstrukce, asi trochu vynucená tím, že Python není Ruby a nechtěli do něj zavést možnost volat metodu i u objektové konstanty (v tomto případě seznamu).. což by se zase třeba mě docela líbilo :-)

    už když jsem se s C před lety učil, se mluvilo o C/C++, a že je to jedno... za C++ konstrukci bylo tehdy pokládáno třeba i komentování celého řádku pomocí // :-) vícemě až časem se nějak ustálilo povědomí, že C++ nejsou růné "extenze compileru", ale v podstatě jenom hierarchický objektový model, templaty a vyjímky (a ještě asi 10 věcí, na které si z hlavy nevzpomenu :)

    k C nemám "emocionální vztah" ale vidím právě jako určitou výhodou, že je tam té vyšší abstrakce překvapivě málo, což umožňuje lidem trochu chápat "co se děje uvnitř" (což u vyšších jazyků obecně nejde, a u C++ to vyžaduje holt jakýsi "absolutní sluch", který nemá každý). prostě se celou dobu snažím založit klub, kde se bude řešit C a celou dobu řeším jakýsi "abslutní trolling"...

    ok, dejme tomu, že C je trochu "steampunk", no. takže někomu se to líbí, někomu ne.. jde o estetickou preferenci, a komu se to nelíbí, ať jde pryč.
    JANFROG
    JANFROG --- ---
    Tak odklon od C k C++ je celkem pozorovatelny trend. Dost "strictly pure C, no C++ ever" projektu potichu prechazi na C++ (GCC / GDB namatkou).
    Jestli je to dobre nebo ne je jina otazka.

    Bylo by hezke kdyby k reseni problemu si rozumni lide vybiraji nastroje podle toho, jak se k tomu konkretnimu problemu hodi, ne podle toho, jakej emocionalni vztah k tomu nastroji maji.
    Situace je takova ze pouzivaji co znaji. Je to celkem pochopitelne...
    BURAN
    BURAN --- ---
    XCHAOS: veskerej firmware v mych produktech je psanej v C.

    Dozvim se od tebe, jak se C kod psanej coderem lisi od C kodu psanym necoderem?
    REDGUY
    REDGUY --- ---
    XCHAOS: kdo říká, že se mi to "nelíbí - protoze s tim, ze to je "vtip" jsi prisel az v okamziku, kdyz jsem z toho neco odvodil. Ale jiste, je to jen muj nazor, mozna s tim, co jsem napsal, plne souhlasis a to o "vtipu" jsi doplnil jen pro uplnost 8))

    Ale porad nejak nevidim jasnou odpoved na ty otazky "kdo je coder" a "jak se pozna coderuv kod od necoderova" 8)

    To co popisujes jako prvni moznost mi nejak nedava smysl. Jak je mozne programovat bez "znalosti logiky toho, jak funguje C"?

    protože náhodou budou sahat do paměti někam, kde při námatkových pokusech většinou nenadělá škodu - uhmmm.... takze "coder" je v tve terminologii proste to, cemu ostatni lide rikaji "spatnej programator, kterej mel zatim kliku"?

    A druha moznost ... hmmm... co to znamena "vybudovat aplikaci po codersku"? A prijde ti pricetne odpovidat na otazku "kdo je coder" odpovedi "ten, kdo programuje po codersku"? 8))

    Prostě se bere jako dané, že lidi, co chtějí v C pokračovat, má smysl jen C++ - No urcite. Linux, embedded systemy, GTK... hmmm. Jo, jasne 8))

    tohle je oficiální názor - Oficialni nazor? Ci? [citation needed]. Nebo spis jenom nechapes, ze programovaci jazyk je jen _nastroj_. A reseni problemu si rozumni lide vybiraji nastroje podle toho, jak se k tomu konkretnimu problemu hodi, ne podle toho, jakej emocionalni vztah k tomu nastroji maji.
    XCHAOS
    XCHAOS --- ---
    REDGUY: uff... kdo říká, že se mi to "nelíbí? ty jsi ve prospěch osobního útoku proti mě obětovat jakýkoliv smysl debaty...

    vidím dvě možnosti toho, co coder s C udělá:

    jedna možnost je, že si sice nastuduje API nějaké knihovny a bude jí volat celkem poctivě a správně - ale bez znalosti logiky toho jak funguje C. Proto mu kód bude zpočátku třeba fungovat, protože náhodou budou sahat do paměti někam, kde při námatkových pokusech většinou nenadělá škodu - ale dřív nebo později nepochopení nějakého principu vyplave na povrch. (tohle teda platilo hlavně u 16bitových procesorů bez "protected módu...ale v omezené míře je to možné i teď, např., že si někdo přepíše paměť, do které sice proces psát smí, ale má tam jiná důležitá data)

    druhá možnost je naopak, že se někdo pomocí jednoduchých postupů, které stačily na jednoduché prográmky, pokusí v C vybudovat složitější aplikaci, tak říkajíc "po codersku".

    o obou možnostech mluvím proto, že jsem je kdysi zažil (a dílem to i sám páchal). problém je, že nevím o žádném českém diskuzním fóru nebo klubu, kde by se řešily "best practices" vývoje v čistém C, nebo se o tom nějak přemýšlelo (jinak než trollováním proti těm, kdo to dělají blbě). Prostě se bere jako dané, že lidi, co chtějí v C pokračovat, má smysl jen C++, a C získává pomalu status jakéhosi muzea parních strojů, s tím, že zatím naše vlaky pořád tahají parní lokomotivy, ale už víme, že je to neefektivní a že časem to budou jen nostalgické jízdy.

    (no, tohle je oficiální názor, no.. já v C vidím spíš něco jako jízdní kolo, které zkoušku časem ustálo, než jako parní stroj... ale to je prostě můj menšinový názor. každopádně, na kole které nebrzdí se dá snadno zabít.. stejně jako parní stroj při neodborném zacházení či seřízení zjevně může vybuchnout, apod.)
    REDGUY
    REDGUY --- ---
    XCHAOS: Jezis, to je komedie. Ja se te zeptam, kdo je to coder, ty nejak odpovis (mimochodem, bez jedineho smajliku nebo jine indikace vtipu) a kdyz na zaklade tvoji odpovedi vyvodim nejake zavery, ktere se ti nelibi, tak najednou zacnecs vykrikovat, ze to vlastne byl vtip.
    Pak napises, ze umis poznat kod, kterej psal "coder", Buran se te zepta, podle ceho to poznas... a prekvapive tvoje odpoved jsou obecne kecy nasledovane vykrucovanim a uhejbanim.

    Proste XChaos 8)

    Takze znovu:

    Kdo je podle tebe "coder"? A podle ceho odlisis kod psany "coderem" a "necoderem"? Nebo pro jistotu tohle tema prohlasis za off-topic? 8))
    XCHAOS
    XCHAOS --- ---
    BURAN: hele... jak moc programuješ v C? (jinak já už moc neprogramuju.. právě díky tomu, že už víc přemýšlím, jak špatně jsem programoval původně... ne že bych to vzdával úplně, ale...)

    REDGUY: ty obrázky nejsou z mý ruky a je to spíš vtip?
    BURAN
    BURAN --- ---
    XCHAOS: jak?
    REDGUY
    REDGUY --- ---
    BURAN: Vzhledem k tomu, jak XChaos toho svyho "codera" definoval, tak jeho kod pujde poznat dost snadno. Ne v tom dobrym smyslu 8)
    XCHAOS
    XCHAOS --- ---
    BURAN: pozná :-)
    BURAN
    BURAN --- ---
    XCHAOS: ten C kod psanej coderama se lisi od C kodu psanej necoderama cim? jak se to pozna?
    XCHAOS
    XCHAOS --- ---
    BURAN: ale otázka, v jakých jazycích existují "codeři", je tu podle mě ontopic :-) já viděl spoustu C kódu, který napsali codeři, totiž :-)
    BURAN
    BURAN --- ---
    XCHAOS: html a css je tu ot.
    XCHAOS
    XCHAOS --- ---
    New C++ Features Voted In By C++17 Standards Committee - Slashdot
    https://developers.slashdot.org/.../06/26/1851201/new-c-features-voted-in-by-c17-standards-committee
    Still no functional gonkulators. Still no encabulation templates. Still no dichroic monads or parameterized gussets. When will the C++ committee ever get around to adding modern language features that users actually want?
    REDGUY
    REDGUY --- ---
    XCHAOS: Cii nejakej junior, kterymu se rekne co presne ma udelat a on to jakz-takz natuka? Tak jo, takovej clovej moc analyticky schopnost fakt nepotrebuje. Akorat ze pokud je fakt postrada, tak ho moc zabavna perspektiva neceka 8)
    Kliknutím sem můžete změnit nastavení reklam