DWORD - Integer

Hallo,
ich hab mir so ein C++ Programmierbuch ausgeliehen.
Zuvor hab ich mit Java immer gearbeitet und z.B. in einer for-Schleife immer einen Integer „hochgezählt“!
In diesem Buch hab ich aber noch nie das Wort Integer oder int gelesen, in einer for-Schleife wird immer ein DWORD hochgezählt.
Gibt Unterschiede zwischen den beiden Typen, und wo ist der Vorteil von DWord, den ich eigentlich nur flüchtig aus der Registry kenne?

Viele Grüße
Manny

Auch hallo.

ich hab mir so ein C++ Programmierbuch ausgeliehen.

Eins über die MFC (=Microsoft Foundation Classes) ?
Immerhin wird auch in C++ mit Integer gearbeitet:

int a = 9;

;

mfg M.L.

Hallo Manny,

ich hab mir so ein C++ Programmierbuch ausgeliehen.
Zuvor hab ich mit Java immer gearbeitet und z.B. in einer
for-Schleife immer einen Integer „hochgezählt“!
In diesem Buch hab ich aber noch nie das Wort Integer oder int
gelesen, in einer for-Schleife wird immer ein DWORD
hochgezählt.

das Buch ist wohl von Intel oder auf ein MS-Betriebssystem zugeschnitten.

Gibt Unterschiede zwischen den beiden Typen, und wo ist der
Vorteil von DWord, den ich eigentlich nur flüchtig aus der
Registry kenne?

Das Ganze ist eine historische Geschichte.

Die alten MS-DOS APIs waren in Assembler geschrieben. Beim Intel-Assembler für die x86-Familie gibt es die Datentypen BYTE, WORD, DWORD und QWORD entsprechend 8,16,32 und 64 Bit.
Dadurch hat MS die Assembler-Typen auch bei den APIs übernommen und auch bei Windows Vista noch beibehalten.

Die andere Seite ist, dass, je nach Programmiersprache, die Datentypen unterschiedliche Bezeichnungen haben. Bei C ist es sogar so, dass je nach Compiler die Datengrösse in Bit nicht eindeutig ist.
C kennt char, short, integer und long, wobei long auch noch zum modifizieren benutzt werden kann.
C definiert nur folgende Beziehung:
char

Hallo,

ich hab mir so ein C++ Programmierbuch ausgeliehen.

Interessehalber: wie heisst das?

In diesem Buch hab ich aber noch nie das Wort Integer oder int
gelesen, in einer for-Schleife wird immer ein DWORD
hochgezählt.
Gibt Unterschiede zwischen den beiden Typen, und wo ist der
Vorteil von DWord, den ich eigentlich nur flüchtig aus der
Registry kenne?

DWORD ist ein Slogan aus der maschinennahen Programmierung
aus 16bit-Zeiten. Ein „Wort“ (WORD) war da ein „Maschinenwort
ohne Vorzeichen“, also ein 16bit-Block. Ein DWORD war dann
eben „doppelt“ (DOUBLEWORD), ein 32bit-Block ohne Vorzeichen
aus 2x 16bit Maschinenworten.

Beim Übergang auf 32bit wäre dann das WORD eigentlich 32bit
breit (Maschinenwort), man behielt(!) aber die alte Nomenklatur
bei, so dass mit DWORD 32bit gemeint blieb. Davon abgeleitet:
QWORD (QUADWORD) für 64bit (4 x 16bit).

In der 32bit-Windows-Programmierwelt ist „DWORD“ ein
Synonym für „unsigned long int“ geworden, welches in
der Win32-Welt eben 32bit breit ist, vgl.:

 typedef unsigned long DWORD

in:
[http://www.fmsoft.cn/api_ref/2.0.x/group__win32__typ…](http://www.fmsoft.cn/api_ref/2.0.x/group win32 types.html)

Grüße

CMБ

Hallo, vielen Dank für die vielen Antworten.

Das Buch ist eigentlich ein recht neueres und heisst „3D Spieleprogrammierung mit DirectX 9 und C++“.

Aus einer Antwort habe ich herausgelesen, dass ein DWORD ein Synonym für „unsigned long int“ ist. Heisst das, ich kann es wie einen Integer behandeln, nur darf es dabei keine negativen Zahlen geben (wegen unsigned)?
Viele Grüße
Manny