Ergebnis 1 bis 20 von 255

Thema: while(true) {write();} - Der Programmierer-Spamthread #1

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ich glaube, du hasst meinen Hinweis nicht verstanden.
    Code (C++):
     
    struct MailingRecord{
       std::string CompanyName;
       struct {
          struct {
             std::string LastName;
             std::string FirstName;
          } President, VPMarketing; // muhaha
          struct {
             std::string Title;
             std::string LastName;
             std::string FirstName;
          } AlternateContact;
       } Contacts;
       std::string Address;
       std::string City;
       char State[2];
       int Zip;
    };
     
    MailingRecord Record1;
    Record1.Contacts.President.FirstName = "Klaus";
     

    Bin mir jetzt nicht mal ganz sicher, ob das mit 'struct' so geht, aber mit 'class' würde es bestimmt gehen.

    Geändert von Drakes (23.09.2009 um 21:24 Uhr)

  2. #2
    Zitat Zitat von Drakes Beitrag anzeigen
    Bin mir jetzt nicht mal ganz sicher, ob das mit 'struct' so geht, aber mit 'class' würde es bestimmt gehen.
    Soweit ich mich erinnere, sind struct und class in der Zwischenzeit synonym, mit dem Unterschied, dass struct Member ohne weitere Angabe public sind und class Member private. Structs können in C++ genau so Memberfunktionen haben und vererbt werden, wie Klassen.

  3. #3
    @Drakes .. ja, so hab ich das gemeint, nur dass man nen struct aus 2 char-arrays und ein groesseres Chararray vereinigen koennte, damit man den String Praesident und den struct Vorname Nachname gleichzeitig fuellen kann.

    @COBOL
    Ich weiss, dass COBOL noch viel in gebrauch ist. Ist in etwa das selbe mit FORTRAN in den Naturwissenschaften. Allerdings werden mit COBOL praktisch keine neuen Codes geschrieben, sofern nicht direkte Kompatibilitaet zwingend erforderlich ist. Meistens wird nur in den alten Codes editiert oder angestueckelt. Ergo kann man nicht davon sprechen, dass COBOL eine aktuelle Programmiersprache waere. Fast niemand verwendet COBOL, wenn er nicht muss.

  4. #4
    Zitat Zitat von Ineluki Beitrag anzeigen
    @Drakes .. ja, so hab ich das gemeint, nur dass man nen struct aus 2 char-arrays und ein groesseres Chararray vereinigen koennte, damit man den String Praesident und den struct Vorname Nachname gleichzeitig fuellen kann.
    Ich bin mir grade nicht sicher, ob das funktioniert. Wie sollte das aussehen?

    Code (c):
    union
    {
        char[32] name;
        struct
        {
            char[16] vorname;
            char[16] nachname;
        } name_struct;
    };


    Dann könnte man die einzelnen Namensbestandteile ja nicht ohne Umweg über name_struct ansprechen.

    Edit: zumal Strings in C nullterminiert sind...

  5. #5
    Genau so meinte ich das.
    Was meinst du damit, dass man die Namensbestandteile nicht separat ueber name_struct ansprechen koennte ? Ggf braeuchte man das Struct auch nicht sondern koennte alle drei Eintraege auch direkt ins Union schreiben.

    Natuerlich ist das mit der Nullterminierung unschoen. Andererseits ist die nicht Pflicht. Gerade bei Chararrays mit konstanter Groesse, wie hier, wird die Nullterminierung oefters weggelassen. Ich sagte ja nicht, dass es schoen ist, ich sagte, es ist relativ einfach machbar.

  6. #6
    Zitat Zitat von Ineluki Beitrag anzeigen
    Natuerlich ist das mit der Nullterminierung unschoen. Andererseits ist die nicht Pflicht. Gerade bei Chararrays mit konstanter Groesse, wie hier, wird die Nullterminierung oefters weggelassen. Ich sagte ja nicht, dass es schoen ist, ich sagte, es ist relativ einfach machbar.
    Wo ist das Abseits von Buffern ueblich? Ich lese /extrem/ viel C-Code und habe so etwas noch nie in meinem Leben gesehen, wenn man nicht gerade irgendwo etwas einliest und die genaue Groesse mit gereicht bekommt. Und da wird der Buffer, insofern Text, auch gleich in einen String zusammen geklebt ...

  7. #7
    C schreibt dir nicht vor, dass deine Stringdefinition Nullbasiert sein muss. Dass die meisten Funktionen das benutzen ist sinnvoll, aber du koenntest trotzdem auf Basis der Pufferfunktionen dein eigenes Stringformat verwenden. Nur sehr sinnvoll ist es nicht. *schulterzuck*

  8. #8
    Zitat Zitat von Ineluki Beitrag anzeigen
    C schreibt dir nicht vor, dass deine Stringdefinition Nullbasiert sein muss. Dass die meisten Funktionen das benutzen ist sinnvoll, aber du koenntest trotzdem auf Basis der Pufferfunktionen dein eigenes Stringformat verwenden. Nur sehr sinnvoll ist es nicht. *schulterzuck*
    Das kann ich aber auch in anderen Sprachen machen, wenn mir fad ist. Dein Beitrag beantwortet nicht wirklich meine Frage.

    Ausserdem sehe ich, das 0byte am Ende eines mit " eingeschlossenen Literals bereits als Stringdefinition.

  9. #9
    Ich hab auch nie behauptet, dass man das in anderen Sprachen nicht koennte. Es ging doch nur darum, ein COBOL-Typisches Konstrukt in einer anderen Sprache umzusetzen. Ich gebe ja zu, dass sich sowas in COBOL leichter machen laesst. Aber gerade durch Castingoperatorueberladungen in C++ halte ich das nicht besonders schwierig in C++ umzusetzen. Und dass es, wenn auch umstaendlich, auch mit C geht, hab ich demonstriert.

    Ich schage vor, wir gehen zum naechsten Thema, das bringt nichts.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •