Threads!



  • Original erstellt von Martin G:
    **
    System.out.println("Hello!");

    einfacher als an

    printf("Hello!\n"); 😕

    Oder was ist an

    len = mein_string.length();

    besser lesbar als

    len = strlen(mein_string);

    **

    Schlechtes Beispiel. Schreibe mal den Ansi c-code auf welcher zu diesem Ausdruck äquivalent ist:

    string substr = "Hallo";
    
    cout << "Länge des Teilstrings: " << mein_string.substring(mein_string.find(substr), substr.length()) << endl;
    

    Ist zwar auf den ersten Blick nicht einfach zu lesen aber doch absolut vertändlich. String manipulationen zu implementieren ist mit c eine sehr langwierige geschichte, IMHO völlig unakzeptabel.

    Oder was hälst du von str1 + str2; //kurz, absolut naheliegend, Perfekt!

    Ich weiss nicht warum du gerade ein bsp mit strings genommen hast. Die String Behandlung ist wohl eines der allergrößten Mankos von c.

    [ Dieser Beitrag wurde am 10.01.2003 um 16:27 Uhr von blauton.com editiert. ]

    [ Dieser Beitrag wurde am 10.01.2003 um 16:31 Uhr von blauton.com editiert. ]



  • außerdem kann std::string ziemlich genial implementiert werden, so dass es für n gleiche Strings nur 1 Kopie im Speicher gibt! Außerdem sind die Container Klassen super praktisch und Templates generell!



  • Original erstellt von <heiner>:
    obwohl mir doch jeden Tag klarer wird was jave doch für eine schöne Standardisierte Sprache ist.

    😮 😮 :o

    java ist NICHT standardisiert, ganz im Gegensatz zu C und C++



  • Original erstellt von Mr. N:
    java ist NICHT standardisiert, ganz im Gegensatz zu C und C++

    Wer Standardisiertes Multithreading verwenden möchte kann zu Ada95 greiffen...
    Threads sind in Ada ein Sprachbestandteil...
    daher -> einmal schreiben, übersetzen unter Windoof, Unix, bis hinunter zum Motorola..



  • Shit - "Stromausfall" beim Schreiben hat meinen letzten Post zunichte gemacht, also nochmal:

    Original erstellt von kingruedi:
    außerdem kann std::string ziemlich genial implementiert werden, so dass es für n gleiche Strings nur 1 Kopie im Speicher gibt!

    Aber nur bei singlethreaded Anwendungen.

    Außerdem sind die Container Klassen super praktisch und Templates generell!

    Ja, auch so unscheinbare Dinge wie vernünftige "const"s sind recht praktisch; und den Vorteil der Verwendung von Klassen wird wohl auch niemand leugnen...

    Dennnoch: Der größte Teil des Linux-Kernels ist wirklich schön - perfekt dokumentiert, kleine spezialisierte Funktionen, aussagekräftige Namen; sowas liest sich einfach wie von selbst wenn man an den "richtigen" Stellen beginnt.
    (Obwohl ein LinuxKernel im "schönen standardisierten" Java sicher noch besser wäre... :p)



  • const gibt es auch in C :p



  • Original erstellt von kingruedi:
    const gibt es auch in C :p

    Ja aber ziemlich verstümmelt, darum habe ich auch geschrieben "vernünftige consts".



  • Was ist an denen schlecht?



  • Naja, zB sowas:

    temp.c

    int main(void)
    {
            const int size = 16;
            int anArray[size];
    
            return 0;
    }
    
    nman: ~ > gcc -o /dev/null -ansi -pedantic temp.c
    temp.c: In function `main':
    temp.c:4: warning: ANSI C forbids variable-size array `anArray'
    nman: ~ >
    


  • -ansi prüft wohl nach dem alten C89 Standard. Benutz lieber -std=c99



  • Oh, das wusste ich nicht; ich programmiere so gut wie nie in C.
    Allerdings erkennt mein gcc -std=c99 nicht:

    nman: ~ > gcc -o /dev/null -std=c99 -pedantic temp.c
    cc1: unknown C standard `c99'
    temp.c: In function `main':
    temp.c:4: warning: ANSI C forbids variable-size array `anArray'
    nman: ~ >
    

    Laut info:gcc sollte es zumindest so gehen:

    gcc -o /dev/null -std=iso9899:1998 -pedantic temp.c
    

    ,das resultiert aber in der gleichen Fehlermeldung... 😕



  • Welche Version hast du den (gcc -v)? Ich würde mal eine neuere installieren 😉



  • *g* Ich brauche keine Compilerausgabe, um zu wissen, dass ich noch immer gcc-2.95.3, (gentoo-revision 8 😉 ) habe, ich stelle mein System erst mit KDE-3.1 stable komplett auf gcc3.2 um, immerhin muss ich dann sowieso alles rekompilieren und ich möchte nicht schon wieder ein 3.0.5er KDE kompilieren wenn 3.1 schon so nahe ist... 🙂
    Aber ich dachte, dass auch der 2.95er gcc C99 kann, der ist immerhin 1999 rausgekommen und C99-Drafts hats damals auch schon gegeben, oder? 😕



  • wahrscheinlich unterstützt der noch nicht alle Features so gut. gcc 3x lohnt sich auf jeden Fall!



  • Original erstellt von kingruedi:
    wahrscheinlich unterstützt der noch nicht alle Features so gut. gcc 3x lohnt sich auf jeden Fall!

    Eh, ich freu mich ja auch schon ziemlich drauf, schon alleine wegen der besseren Einhaltung des ISO-C++-Standards und der tollen Optimierung, aber momentan habe ich leider keine Zeit, alle Fehler zu beheben, die beim "emerge -e world" wahrscheinlich auftreten werden... 😉


Anmelden zum Antworten