Więc zanurzyłem palce w adnotacjach kodu źródłowego dla C++, ale odkryłem, że Rzym ma wiele sposobów, że tak powiem.Adnotacje SAL, z których użyć?
Przykłady:
__in
_In_
[Pre(FormatString(Style="printf")] LPCSTR format
- VS2005 SAL Annotations
- VS2010 Using Annotations to Reduce C/C++ Code Defects
- VS2012 Using SAL Annotations to Reduce C/C++ Code Defects
Czy istnieje jeden -microsoft-sposób to zrobić?
SAL może mieć tylko potencjalne znaczenie dla C, nie dla C++. Ale zastanów się, czy Microsoft nie poprawił nawet adnotacji "MessageBox". Oznacza to, że SAL jest gorsza od bezwartościowych rupieci: dodaje skrajnej gadatliwości, która spowalnia programistów, a przekazane informacje są często błędne (co ilustruje mój przykład), co nie tylko spowalnia programistów, ale także aktywnie je wprowadza w błąd. Więc nawet w przypadku C powiedziałbym, że używanie * SAL jest całkiem * nieproduktywne *. ** Po prostu powiedz NIE! ** –
@ Cheersandhth.-Alf Nie mogę mówić o kodzie użytkownika, ale SAL jest w rzeczywistości całkiem korzystna dla kierowców. W szczególności "_IRQL" adnotacje – brc
@brc: uhm, spojrzałem na to. poza pytaniem "czy SAL byłaby jedyną drogą do uzyskania gwarancji" wygląda to niezwykle skomplikowanie, podczas gdy poziomy żądania przerwania same w sobie są prostą rzeczą. więc bardzo przypomina mi Microsoft o "złożonym" schemacie złożoności dodawanym przez Microsoft do wątków w COM. wiele osób uważało, że miało to sens. wiele osób wciąż myśli np. "WinMain" (tylko dodany, nieproduktywna, pozbawiona znaczenia złożoność) to dobry pomysł. tak więc mocno podejrzewam, że tak jest również w przypadku adnotacji SAL _IRCL: że po prostu niepotrzebnie dodają złożoności i zaciemnienia. –