Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI] Nazwy typów

Ostatnio zmodyfikowano 2017-09-01 10:36
Autor Wiadomość
Kinexity
Temat założony przez niniejszego użytkownika
[WinAPI] Nazwy typów
» 2017-08-31 22:58:31
Mam takie pytanie raczej do osób bardziej doświadczonych - dlaczego MS w WinAPI powstawiał setki typedef'ów, zamiast po prostu używać standardowych nazw typów?
P-164484
jankowalski25
» 2017-08-31 23:28:20
Bo istniał wcześniej kod, który z tego korzystał. Ogólnie WinAPI jest dość toporne między innymi ze względu na zgodność wsteczną - wiele kawałków kodu można byłoby napisać lepiej, ale refaktoring jest dość kosztowny, więc spora część kodu pozostała bez zmian.

Zresztą, jeśli dobrze zrozumiałem, to samo WinAPI opierało się o różne języki, więc to była pewnego rodzaju próba ujednolicenia tego wszystkiego. Jeśli użyjesz typu
BOOL
 oraz wartości
TRUE
 i
FALSE
, to takie coś zadziała niezależnie od tego, czy w danym języku typ
bool
 jest wspierany i jak się nazywa (dawniej używano na przykład typu
int
 do tego celu).

Poza tym, kod pisany w okolicach roku 1985 lub wcześniej nie był budowany na podstawie takich standardów, jak dzisiaj. Microsoft, podobnie jak wiele różnych firm piszących zamknięte oprogramowanie, od wielu lat tworzy własne standardy. Przyczyny są różne, ale pamiętaj, że jeśli nie istnieje powszechnie znany sposób na rozwiązanie danego problemu (lub zastosowanie istniejącego rozwiązania jest kłopotliwe), to ludzie robią to po swojemu.
P-164488
j23
» 2017-09-01 10:36:24
Dlatego, że standardowe typy, takie jak long, int, short, nie mają jednoznacznie określonych wielkości, a to jest istotne, jeśli udostępniasz API innym aplikacjom. Używając takiego DWORDa, wiesz, że będzie to zawsze typ 32-bitowy bez znaku, niezależnie od tego, czy kompilujesz na platformie 32- czy 64-bitowej.
P-164497
« 1 »
  Strona 1 z 1