• ú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í
    XCHAOS
    XCHAOS --- ---
    TENCOKACISTROMY: hele, nejde :-) ani s přetypováním ne.

    (*((typ objektu *)(funkce_vracejici_objekt())->interface->metoda))(objekt, parametry)

    ... chápeš? prostě objektový model pro čisté C sice existuje, a je i docela elegantní (může být i strukturovaný, když nezahrnuje dědění) - ale prostě když ti funkce vrátí objekt, musíš pracovat s pointerem na něj - nemůžeš ten samý objekt jednoduše předat nějaké metodě (šlo by to, kdyby C mělo nějaké "self" nebo "this" - což ovšem nemá).

    C++ někomu sedne, někomu ne. Nemá to cenu řešit. Ti, kdo mají C++ rádi, si musí uvědomit, že používají jazyk, který je sice mocný, ale nesedne všem. Sedne to lidem s nadáním pro vyšší matematiku - ale je to už příliš vzdálené přirozenému jazyku či "kupeckým počtům". To je celé. Nerozjíždějme další flejm.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    XCHAOS: v čistém C nikdy nevymyslím objektovou syntaxi, která by umožnovala zavolat metodu u objektu vráceného nějakou funkcí.
    Tak ono by to slo ... otazkou ale je, jestli by pak precijen nebylo lepsi pouzit to C++ :)
    XCHAOS
    XCHAOS --- ---
    JACHYMKO: to asi ne - jako dialekt to dělám právě proto, že na tyhle věci jsem líný :-)
    ale zase takový pre-compiler, který by uměl věci, co v C principiálně nejsou...
    PHP: Operator Precedence - Manual
    http://www.php.net/manual/en/language.operators.precedence.php

    - líbily by se mi porovnávací operátory === a ~= (ten jsem dřív navrhoval pro Python a není ani v tom PHP)
    - v čistém C nikdy nevymyslím objektovou syntaxi, která by umožnovala zavolat metodu u objektu vráceného nějakou funkcí

    Pre-compilery do čistého C se ale dělají i z Pythonu, není to nic nového... osobně bych spíš než nějaký úplně nový jazyk udělal pre-compiler třeba z Pythoní syntaxe do mého dialektu jako do mezijazyka (BTW - na rozdíl od těch stávajících precompilerů by nevyžadoval statické typování a umožnoval by mi rozhodovat o věcech, jako jestli porovnání objektů odlišného typu vyhodí exception nebo ne...)
    XCHAOS
    XCHAOS --- ---
    update: co jste mých prasomaker týče, vyhráli jste bitvu (ale ne válku).

    rozhodl jsem se, že původní nápad:

    for_selected(...) { }

    by byla po mém zobecnění:

    for_each(typ_polozky,polozka,typ_seznamu,seznam,...) { }

    asi fakt prasárna. na jednoduchém zápise

    for_each(...) if (podmínka) { }

    fakt není nic špatného, možná jsem to s tou snahou o větší čitelnost kodu fakt vzal ze špatného konce (ted to vidím tak, že pokud se budu snažit o makro-dialekt, mělo by těch maker být co nejméně - nejlépe méně než deset, z toho tak max. 2-3 by se týkaly flow-control...)

    (změnil jsem to dokonce i ve starších verzích kodu na bázi C<<1 maker :-))

    na druhou stranu - mám svrbění pořád nějak "zčitelnovat" nalezení jednoho prvku:

    for_each(...) if (podmínka) break;

    ...ale nevím, jestli to nenechám přeci jen být... (fakt je, že break; a continue; v cyklech jsou naprostý základ, který si stejně musí nastudovat každý, kdo chce s jakýmikoliv cykly vážně pracovat)
    ANT_39
    ANT_39 --- ---
    XCHAOS: Imho je to tam uz dyl, a se standardem to (opet imho) nesouvisi. Jednak je printf builtin, cili gcc o nem "vi": zkus treba printf("blabla\n"), gcc ti z toho vyrobi puts("blabla"). Mimo to, gcc ma __attribute__((format(...))), kterym se tohle myslim da deklarovat.
    XCHAOS
    XCHAOS --- ---
    Ok... konec offtopiců, po delší době.

    Jedna z drobných, ale podstatných vychytávek u kompilace čistého C zdrojáku pod GNU C, kterou jsem zaregistroval v poslední době:

    prometheus.c: In function ‘main’:
    prometheus.c:1751: warning: format ‘%d’ expects type ‘int’, but argument 13 has type ‘char *’
    prometheus.c:1751: warning: too few arguments for format


    (mám pocit, že to tam bylo už dřív, ale hlídalo se to jen u režinu kompatiblity se standardem C99? každopádně nehlídání tohoto bylo častým zdrojem jak kritiky, tak i chyb... trochu tím C získalo násklok před interpretovanými dynamicky typovanými jazyky, které ale nějakým způsobem umožňují použití printf formátovacích stringů... )
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    Obecný problém programátorů :-)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    _BENNY: Jeste porad sem to neshledl vsechno, ale mam to v planu na let do evropy. A ten chlap je dost vyjimecnej i na tom MIT.
    _BENNY
    _BENNY --- ---
    DAVIDOWITCH: sakra to vubec neni zly, je to asi ta nejzazivnejsi fyzika od doby me zakladni skoly :-)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: to byla spíš ironie. já jsem vcelku rád, že nemusím řešit takové věci.. i když bylo to poučné pro pochopení, jak některé věci fungují vevnitř.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tyjo, ja nevim. Asi ne presne zrovna tohle, ale ze bych jako programator mel problem s uplatnenim v miste kde se po mne chce podobna invence.. nemam.
    XCHAOS
    XCHAOS --- ---
    (nebo možná i oni si ten textový mód nastavovali sami... ale já musel poznat, že už skončili, a že mám znovu nahodit grafiku... takhle to bylo) no každopádně oboje slušně offtopic, vzhledem k tématu klubu (ačkoliv to bylo implementované v Céčlu :)
    XCHAOS
    XCHAOS --- ---
    JACHYMKO: heh, to mi připomíná, jak jsem na sklonku epochy Arachne implementoval Alt+Tab přepínání pro nějakéh prachatého klienta (s X desítkami či stovkami licencí) do nějakého jejich text-mode programu :) byl to slušně vychovaný program a vše bylo stabilní: ale byl tam nějaký háček, že se musel ten Alt+Tab interrupt odchytit, přepnout z grafického módu do textového... a pak pokračovat tam, kde to chtělo pokračovat předtím samo.

    ...a pak se podobným způsobem muselo po návratu z interruptu grafika zase reincializovat (to jsem pokud se dobře pamatuju ochcal hloupým trikem, že rutina pro kreslení obyčejných hodin v rohu obrazovky hlídala, zda nebyl náhodou předtím nastaven globální příznak toho odskkoku - a pokud ano,vynulovalo ho to a reinicializovalo grafiku)

    jó,všechny tyhle triky jsou v éře fungujících operačních systémů už zbytečné, a člověk jen těžko hledá uplatnění,když nechce programovat donekonečna nějakého webové prodávání různých nesmyslů různým troubům :-(
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Asi se mijime. Ja postoval video jedno (sice ze serie, ale jedno) a to o fyzice. A nastaveny na poslednich asi 5 minut.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: no, tak prolítl jsem to první. uznávám, že mi to přijde názornější, než co si pamatuju z českých VŠ: pamatuju si trénování mechanických číselných výpočtů a operací, bez jakéhokoliv odkazu na nějakou vizuální/geometrickou interpretaci. matice je hned srozumitelnější konstrukce, když si jí člověk představí jako soustavu čar (či rovin).
    XCHAOS
    XCHAOS --- ---
    ISTEVE: no ano, ale netýká se to jen přednášek, ale obecně všech "mluvících hlav" na videu a v tv... když půjde o nějakou debatu s politiky, tak si taky radši přečtu přepis toho, o čem mluvili (zabere mi to čtvrtinu toho času). můžeš to interpretovat i jako nějakou sebeobranu proti snaze určitých lidí zaujmout mojí pozornost po nějakou předem stanovenou dobu... já sám chci rozhodovat o tom, jak dlouho budu nějakému tématu věnovat pozornost.

    (na toto je velice ideální třeba online diskuzní fórum)
    ISTEVE
    ISTEVE --- ---
    XCHAOS: Chapu tudiz spravne, ze spis ctes papery nez koukas na prednaskovy videa?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Ehm.. videls to video?
    Kliknutím sem můžete změnit nastavení reklam