Also habe ich meine Zehen in Quellcode-Annotationen für C++ getaucht, aber entdeckt, dass es viele Wege nach Rom gibt, sozusagen.SAL-Annotationen, welche verwenden?
Beispiele:
__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
Gibt es ein -Microsoft-Weg, dies zu tun?
SAL konnte nur potentiell Sinn für C, nicht für C++. Aber bedenken Sie, dass Microsoft sogar die Annotationen von "MessageBox" falsch geschrieben hat. Das bedeutet, dass SAL schlimmer ist als wertloser Müll: Es fügt extreme Ausführlichkeit hinzu, die Programmierer verlangsamt, und die wenigen Informationen, die es vermittelt, sind oft falsch (wie in meinem Beispiel dargestellt) und verlangsamen nicht nur Programmierer, sondern führen sie auch aktiv in die Irre. Also selbst für C würde ich sagen, dass es ziemlich * kontraproduktiv ist, SAL zu verwenden. ** Sag einfach NEIN! ** –
@ Cheersandhth.-Alf Ich kann nicht für Userland-Code sprechen, aber SAL ist eigentlich ziemlich vorteilhaft für die Fahrer. Besonders die '_IRQL' Annotationen – brc
@ brc: uhm, ich habe es angeschaut. Abgesehen von der Frage "Wäre SAL der einzige Weg, um Garantien zu erreichen", sieht es fürchterlich komplex aus, während Interrupt-Anforderungspegel an sich eine einfache Sache sind. Das erinnert mich stark an Microsofts "Apartment" -Komplexitätsschema für das Threading in COM. viele Leute dachten, das sei sinnvoll. viele Leute denken immer noch z.B. 'WinMain' (gerade hinzugefügt, kontraproduktive bedeutungslose Komplexität) ist eine gute Idee. Also, ich vermute stark, dass dies auch für SAL-IRCL-Anmerkungen der Fall ist: dass sie einfach unnötigerweise Komplexität und Verschleierung hinzugefügt haben. –