Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / SAL - кое-что новое для С++ / 1 сообщений из 1, страница 1 из 1
12.11.2006, 07:57
    #34121668
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAL - кое-что новое для С++
SAL - Standard Annotation Language, с недавних пор поддерживаемый компилятором Microsoft C++ (входит в Visual Studio и Windows SDK). Я однажды показывал это на Днях Разработчика, приведу пример и здесь. SAL позволяет писать вот конструкции вида:



_checkReturn __bcount_opt(_Size) void *__cdecl malloc(__in size_t _Size);



Это всем известная функция malloc, в которую добавлены несколько дополнительных атрибутов:

__in указывает, что функция только читает из параметра _Size и заодно проверяет, что он инициализирован

__bcount_opt(_Size) проверяет, что возвращенный функцией указатель действительно указывает на выделенный в куче блок памяти указанного размера. При этом суффикс _opt указывает, что может вернуться и NULL

__checkReturn проверяет, что после вызова функции возвращенное значение было проверено вызывающей стороной на NULL до использования.



Например, при компиляции вот такого кода:



int * p;

p = malloc(10);

&p = 1;



Компилятор покажет предупреждение warning C6031: Return value ignored: 'malloc', что возвращенное значение не проверено на NULL.



Подобных атрибутов много и узнать о них, а также о будущем развитии SAL вы можете из статьи Майкла Ховарда (Michael Howard) “A Brief Introduction to the Standard Annotation Language (SAL)”.

http://blogs.gotdotnet.ru/personal/allo/ct.ashx?id=c4109f02-87fc-421d-b322-34b2f7ce4719&url=http%3a%2f%2fblogs.msdn.com%2fmichael_howard%2farchive%2f2006%2f05%2f19%2f602077.aspx

------------------------------------------

оригинал

http://blogs.gotdotnet.ru/personal/allo/PermaLink.aspx?guid=c4109f02-87fc-421d-b322-34b2f7ce4719
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / SAL - кое-что новое для С++ / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]