Udostępnij za pośrednictwem


Włączanie funkcji STRICT

Podczas definiowania symbolu STRICT można włączyć funkcje wymagające większej staranności podczas deklarowania i używania typów. Ułatwia to pisanie bardziej przenośnego kodu. Ta dodatkowa ostrożność spowoduje również skrócenie czasu debugowania. Włączenie STRICT ponownie definiuje niektóre typy danych w taki sposób, aby kompilator nie zezwalał na przypisywanie z jednego typu do drugiego bez jawnego rzutowania. Jest to szczególnie przydatne w przypadku kodu systemu Windows. Błędy podczas przekazywania typów danych są zgłaszane w czasie kompilacji zamiast powodować błędy krytyczne w czasie wykonywania.

W programie Visual C++sprawdzanie typów strict jest definiowane domyślnie.

Aby zdefiniować STRICT dla każdego pliku oddzielnie, wstaw instrukcję #define przed dołączeniem Windows.h:

#define STRICT
#include <windows.h>

Gdy STRICT jest zdefiniowane, definicje typu danych zmieniają się w następujący sposób:

  • Określone typy dojść są definiowane jako wzajemnie wykluczające się; na przykład nie będzie można przekazać HWND tam, gdzie wymagany jest argument typu HDC . Bez STRICTwszystkie uchwyty są zdefiniowane jako HANDLE, więc kompilator nie zapobiega użyciu jednego typu uchwytu, gdy oczekiwany jest inny typ.
  • Wszystkie typy funkcji wywołania zwrotnego (takie jak procedury dialogowe, procedury okien i procedury zaczepienia) są definiowane z pełnymi prototypami. Zapobiega to deklarowaniu funkcji wywołania zwrotnego z niepoprawnymi listami parametrów.
  • Typy parametrów i wartości zwracanych, które powinny używać wskaźnika ogólnego, są poprawnie deklarowane jako LPVOID zamiast jako LPSTR lub inny typ wskaźnika.
  • Struktura COMSTAT jest zadeklarowana zgodnie ze standardem ANSI.

wyłączanie STRICT

Ścisłe Przestrzeganie