开发学院软件开发C++ C++代码安全增强与标准注解语言SAL 阅读

C++代码安全增强与标准注解语言SAL

 2010-11-11 15:21:55 来源:WEB开发网   
核心提示:看着让人叹为观止的宏我们来说说其重点,[SA_Pre(p1)]这种元语言语法和C#的元语言语法类似,C++代码安全增强与标准注解语言SAL(2),没找到任何关于它的说明(有谁知道麻烦告诉我一声),别一种用法是 __declspec("SAL_pre"),虽然不一定要用它但了解一下总归是有帮助的,个人

看着让人叹为观止的宏我们来说说其重点,[SA_Pre(p1)]这种元语言语法和C#的元语言语法类似,没找到任何关于它的说明(有谁知道麻烦告诉我一声),别一种用法是 __declspec("SAL_pre"),这个容易理解就是一个标准的编译器扩展。类似的扩展支持多少?同样也没有看到文档说,不过不必担心,使用SAL的时候永远不会直接用到的它的。关于SAL的使用微软官方有两篇文档进行了介绍,这个是介绍vs2010的http://msdn.microsoft.com/en-us/library/ms235402.aspx,这个是介绍vs2005的http://msdn.microsoft.com/en-us/library/aa383701(VS.85).aspx。下面简单介绍一下SAL语法。

1、__in

用__in注解的函数将只从单元素的缓冲区中读取数据,而且这个缓冲区必须被初始化(不能为NULL);__in_ecount(n)与其相似但可以指定元素个数。

2、__out

用__out注解的函数表示数据缓冲区必须是有效的并且可以被调用代码废弃。

3、__in_opt

  表示可选缓冲区当然缓冲区可以为NULL。

4、__inout

表示可以读/写的缓冲区。缓冲区必须被调用者初始化。

5、__bcount(n)

限定缓冲区大小为n字节。

6、_ecount(n)

限定元素个数为n。

7、__checkReturn

    调用者必须检查返回值,不允许忽略。

SAL的关健字很多就不一一介绍了,希望看这个贴子的读者能对SAL有个感性的认识,虽然不一定要用它但了解一下总归是有帮助的。个人理解不同难免会有疏漏,如果你要是准备使用SAL建议还是多看看MSDN吧。

上一页  1 2 

Tags:代码安全 增强 标准注解 SAL

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接