Ja, Sie sollten den richtigen Datentyp für die Argumente für Funktionen verwenden, oder Sie werden sich wahrscheinlich in Schwierigkeiten finden.
Und der Grund, dass diese Art, wie sie sind definiert ist, anstatt int
, char
mit und so weiter ist, dass es die entfernt „was der Compiler denkt sollte ein int
so bemessen sein,“ von der Schnittstelle des OS. Das ist eine sehr gute Sache, denn wenn Sie den Compiler A oder den Compiler B oder den Compiler C verwenden, werden alle dieselben Typen verwenden - nur die Header-Datei der Bibliotheksschnittstelle muss das Richtige tun, um die Typen zu definieren.
Durch die Definition von Typen, die keine Standardtypen sind, ist es einfach, int
von 16 auf 32 Bit zu ändern. Die ersten C/C++ - Compiler für Windows verwendeten 16-Bit-Ganzzahlen. Es war nur in der Mitte der späten 1990er Jahre, dass Windows eine 32-Bit-API bekam, und bis zu diesem Punkt verwendeten Sie int
, die 16-Bit war. Stellen Sie sich vor, dass Sie ein gut funktionierendes Programm haben, das mehrere hundert int
Variablen verwendet, und plötzlich müssen Sie ALLE diese Variablen auf etwas anderes ändern ... Wäre nicht sehr nett, richtig - besonders als EINIGE von denen Variablen müssen NICHT geändert werden, da der Wechsel zu einem 32-Bit-Int für einen Teil Ihres Codes keinen Unterschied macht, daher ist es nicht sinnvoll, diese Bits zu ändern.
Es soll beachtet werden, dass WCHAR
nicht das gleiche ist wie const char
- WCHAR
ist ein „wide char“ so wchar_t
der vergleichbare Typ ist.
Also, im Grunde, die "definieren Sie unseren eigenen Typ" ist eine Möglichkeit zu garantieren, dass es möglich ist, die zugrunde liegende Compiler-Architektur zu ändern, ohne (viel von) den Quellcode zu ändern. Alle größeren Projekte, die eine maschinenabhängige Codierung durchführen, tun dies.
'WCHAR' ist nicht dasselbe wie' char * '... (Ich bekomme, was Sie fragen) –
Dies sind Datentypen von Macro Assembler. Das war die Sprache, in der Windows 1.0 größtenteils geschrieben wurde. –