Probleme bei Strukturen



  • way schrieb:

    Wenn du mit der Entwicklungsumgebung Visual Studio C/C++ arbeitest, solltest du die Strukturen vor unnützer und fehleranfälliger (und automatischer) Strukturenoptimierung schützen.

    nö, du darfst structs nur nicht wie char-arrays behandeln.
    🙂



  • Hallo

    Was hast du für ein Problem?

    Mfg.
    way



  • way schrieb:

    Was hast du für ein Problem?

    Falls du mich meinst: Beantworte meine Fragen, dann beantworte ich deine 😉



  • Hallo

    Warum nur bei Visual C++?

    Weil ich es persönlich nur bei Visual Studio C++ erlebt habe.

    Warum unnütz?

    Weil es in den meisten Fällen nicht gewollt ist.

    Was sind das für "bestimmte Fälle"?

    Bestimmte Fälle in denen man mit den Strukturen arbeitet?

    Das letzte stimmt auch, dadurch bin ich auf die Optimierung aufmerksam geworden. Ist das jetzt schlimm? oO

    Mfg.
    way



  • way schrieb:

    Weil ich es persönlich nur bei Visual Studio C++ erlebt habe.

    FYI: Viele Compiler machen das.

    way schrieb:

    Weil es in den meisten Fällen nicht gewollt ist.

    Weißt du überhaupt, welchem Zweck es dient?

    way schrieb:

    Bestimmte Fälle in denen man mit den Strukturen arbeitet?

    Also kannst du das nicht näher beschreiben?



  • way schrieb:

    Warum unnütz?

    Weil es in den meisten Fällen nicht gewollt ist.

    schau mal da: http://en.wikipedia.org/wiki/Packed
    🙂



  • Hallo

    Möchtest du dich profilieren oder warum brauchst du eine Erklärung?

    Naja, ich rechtfertige mich trotzdem mal. Die struct's werden standardmäßig nicht unter 32 Bytes optimiert (oder waren es 24?). Falls die Byteanzahl über 32 ist, werden weitere 24 hinzugefügt. Der Memory Cache (CPU) ist optimiert um eine größere Byteanzahl als einen Byte zu kopieren.

    Mfg.
    way



  • way schrieb:

    Möchtest du dich profilieren oder warum brauchst du eine Erklärung?

    schlechte laune oder was?
    🙂



  • Hallo

    Bin auf der Arbeit, jooo...

    Mfg.
    way



  • way schrieb:

    Bin auf der Arbeit, jooo...

    na, ich hoffe du musst bei deiner arbeit keinen C-code schreiben.
    (nicht ernst nehmen).
    🙂



  • Hallo

    Nä, Fließbandarbeiter (;

    Mfg.
    way



  • way schrieb:

    Die struct's werden standardmäßig nicht unter 32 Bytes optimiert (oder waren es 24?). Falls die Byteanzahl über 32 ist, werden weitere 24 hinzugefügt. Der Memory Cache (CPU) ist optimiert um eine größere Byteanzahl als einen Byte zu kopieren.

    Davon ab dass das allenfalls grob umrissen ist, war die Frage doch eigentlich, warum dies "meist ungewollt" ist.

    Nein, wir möchten uns nicht profilieren, wir (Mehrzahl) haben nur den Eindruck, dass Du nicht so recht verstehst, warum und wann ein Compiler überhaupt packt. Das kann aber nicht der Grund sein, Packing grundsätzlich abzuschalten.

    EDIT:
    Profilieren möchte sich m.E. eher, wer unbegründet empfiehlt "unnütze und fehleranfällige Strukturenoptimierung" zu deaktivieren.



  • _matze schrieb:

    2. In ANSI-C darf man die Rückgabe von malloc nicht casten

    Wieso sollte man das nicht dürfen? Ist doch völlig Standardkonform. Ob es allerdings schön ist, ist eine andere Sache.


Anmelden zum Antworten