Globale Variable in Funktion überschreiben



  • und WORD ist durchaus nützlich

    Glaub ich übrigens nicht, jedendenfalls nicht besser als ein normaler 32Bit int. 32Bit Prozessoren brauchen längere Zeit um Anomalien wie short anderswo unterzubringen.



  • viande schrieb:

    Das Problem ist nur, wenn man short verwendet, kann die Größe von Plattform zu Plattform variieren, das kann einen bei WORD nicht passieren, weil WORD ganz genau in seiner Größe festgelegt ist. Short dagegen nicht.

    EDIT: Allerdings finde ich __int16 noch schöner, weils auch als Schlüsselwort gilt und entsprechend gefärbt wird 🙂

    Da gibt es nur ein Problem : WORD ist WinAPI spezifisch. Also wenn's du glaubst WORD mehr protabel den int dann irrst du gewaltig.



  • Irgendwer schrieb:

    viande schrieb:

    Das Problem ist nur, wenn man short verwendet, kann die Größe von Plattform zu Plattform variieren, das kann einen bei WORD nicht passieren, weil WORD ganz genau in seiner Größe festgelegt ist. Short dagegen nicht.

    EDIT: Allerdings finde ich __int16 noch schöner, weils auch als Schlüsselwort gilt und entsprechend gefärbt wird 🙂

    Da gibt es nur ein Problem : WORD ist WinAPI spezifisch. Also wenn's du glaubst WORD mehr protabel den int dann irrst du gewaltig.

    Mh, wusste ich gar net, da ichs noich nie benutzt habe 😉 Aber so wird man schlauer, dann halt weiter __intxx 🙂



  • WORD ist auf jeder Platform die Registerweite. D.h. i386-i686 32 bit



  • viande schrieb:

    Irgendwer schrieb:

    viande schrieb:

    Das Problem ist nur, wenn man short verwendet, kann die Größe von Plattform zu Plattform variieren, das kann einen bei WORD nicht passieren, weil WORD ganz genau in seiner Größe festgelegt ist. Short dagegen nicht.

    EDIT: Allerdings finde ich __int16 noch schöner, weils auch als Schlüsselwort gilt und entsprechend gefärbt wird 🙂

    Da gibt es nur ein Problem : WORD ist WinAPI spezifisch. Also wenn's du glaubst WORD mehr protabel den int dann irrst du gewaltig.

    Mh, wusste ich gar net, da ichs noich nie benutzt habe 😉 Aber so wird man schlauer, dann halt weiter __intxx 🙂

    Wobei __intxx VC spezifisch ist. Portabel ist int oder short.



  • spjoe schrieb:

    WORD ist auf jeder Platform die Registerweite. D.h. i386-i686 32 bit

    das ist DWORD 😉 , WORD hat auf 32bit systemen afaik nur 16bit

    das erinnert so sehr an die Win32 und wenn du dazu stehst dann geh ins WinAPI-Forum, wir sind hier in Standard C++.

    wusste nicht, dass typedefs nichtmehr zum standard gehören 🙄



  • Ich habs Immer so kennen gelernt, dass WORD = 2 Byte und DWORD = 2*WORD = 4 Byte. Ich hab übrigens grad mal geguckt, also, Dev-Cpp hat auch __intxx 🙂
    Dummerweise ist das auch nur ein typedef, aber mir ist gerade eingefallen, dass es ja bei Boost sowas gibt: <boost/cstdint.h>. Das benutzt dann <stdint.h> vom jeweiligen System, sofern vorhanden. Damit hat man dann absolute Sicherheit 😉



  • Wenn irgendwo WORD 2Byte groß ist, dann ist das auf der Plattform möglicherweise Tradition, da sie mal 16bittig war (oder noch ist).

    Auf 32Bit-Maschienen ist die Wortbreite jedenfalls 32Bit. (Daher der Name 32-Bit Maschiene.)
    Wenn WORD dann aber nur ein halbes Wort breit ist ist das möglicherweise sogar iritierend. Da in der Regel wohl aber nur Leute damit arbeiten werden, die sich auf der Plattform auskennen (sonst käme man wohl nicht auf die Idee überhaupt den misteriösen Typ WORD zu verwenden) ist das kein Problem.

    DWORD würde ich als Double-Word interpretieren. Deswegen würde ich vermuten, das der Typ zwei Worte breit ist.



  • stimmt helium...die winapi war doch mal 16bittig, und da ms die ganzen alten codes nicht wegschmeissen wollte, haben sie WORD die alte größe beibehalten lassen und dafür dann DWORD eingeführt....

    [/hypothese]



  • mh, daher kommt das 💡
    Weil ich kenne das nämlich nur von Datenpaketen, dann wird das wohl auch von den Windowssockets kommen ... Naja, da ich wie gesagt, das aber eh nie nutze, is mir das auch wurscht :p


Anmelden zum Antworten