Что делает этот макрос? __success(return >= 0) долго
В заголовочном файле Windows WinNT.h HRESULT определяется следующим образом:
typedef __success(return >= 0) long HRESULT;
Проведя некоторые исследования, я узнал, что макрос "__success" является частью SAL языка аннотаций исходного кода Microsoft и определен в sal.h. Но за свою жизнь я не могу понять, что он делает или как он это делает.
Заранее спасибо.
Тодд
1 ответ
Решение
Этот пост в блоге на MSDN объясняет, что именно __success
означает: это означает, что функция завершилась успешно, если она возвращает HRESULT
значение>= 0.
Аннотации - это просто способ описать что-то в части кода - сами по себе они ничего не "делают", но внешние инструменты могут проверять семантику таких аннотаций.