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.
Tematy pokrewne
-
wyłączanie STRICT