
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.11.2006, 07:57
|
|||
|---|---|---|---|
SAL - кое-что новое для С++ |
|||
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2030062]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
18ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 409ms |

| 0 / 0 |
