VS2005中检测和更正 C/C++ 代码缺陷
VS2005中检测和更正 C/C++ 代码缺陷
2006-11-26 15:55
VS2005中提供的检测方法:
1 IDE(集成开发环境)集成
2 #pragma 支持
3 批注支持
4 作为签入策略的一部分运行分析工具
5 Team System 与 Team Build 的集成
6 命令行支持
一 代码分析工具用于检测常见的编码错误,例如缓冲区溢出、内存未初始化、空指针取消引用,以及内存和资源泄露。
为 C/C++ 代码启用代码分析
在 Visual Studio 中打开一个项目。
在“项目”菜单上单击“属性”。
单击“代码分析”。
在“启用 C/C++ 代码分析”列表中,选择“是(/analyze)”,然后单击“确定”。
禁用 C/C++ 代码分析
在 Visual Studio 中打开一个项目。
在“项目”菜单上单击“属性”。
单击“代码分析”。
在“启用 C/C++ 代码分析”列表中,选择“否”,然后单击“确定”。
二 若要管理警告状态,请在单独的头文件中列出所有代码分析警告。将头文件包括在源文件中。使用 warning pragma 重写头文件中的设置。
启用或禁用代码分析警告
创建一个头文件,其中列出所有代码分析警告和这些警告的初始状态,如下面的代码所示:
// WarningState.h
#pragma warning ( enable : 6001 )
#pragma warning ( disable : 6011 )
// more warnings here
// end of file
将 WarningState.h 包括在应用程序头文件中。在本例中,MyApplication.h 代表头文件。
// MyApplication.h file
#include "WarningState.h"
// ...
// end of file
将 MyApplication.h 文件包括在源代码文件中。在本例中,MyApplication.cpp 代表源文件。
// MyApplication.cpp file
#include "MyApplication.h"
若要修改警告状态,请在 .cpp 文件中使用 pragma 警告说明符,如下面的代码所示:
#pragma warning ( enable : 6011 )
#pragma warning ( disable : 6001 )
三 若要在 C++ 中批注代码,必须首先包括 SourceAnnotations.h 文件,然后使用 vc_attributes 命名空间。(其他的批注属性:http://msdn2.microsoft.com/zh-cn/library/ms182037(VS.80).aspx)
在 C++ 中批注代码
向项目头文件添加 #include <CodeAnalysis/SourceAnnotations.h> 文件。 &nbs
相关文档:
强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型(int)(x+y) 把x+y的结果转换为整型在使用强制转换时应注意以下问题:
1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int) ......
转自:http://dev.csdn.net/article/29/29329.shtm
关于逻辑移位、算术移位可参见 迅雷深大笔试题部分。的一道题。
以前看到C++标准上说,移位运算符(<<、>>)出界时的行为并不确定:
The behavior is undefined if the right operand is negative, or greater than or equal to the length in bit ......
C/C++基本知识(转载)
0
推荐本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试 ......
解题思路: 这个网络上已经有很多答案,这里
列举一个复杂度为0(m*n)的例子。实现的原理
很简单,顺序遍历要查找的字符串,如果没有找
到,字符串指针往前一位,再往后比较要查找的
字符串(模式串),如下图所示:
a b c d d d a d a c a b d a d d d a d c k
&nbs ......