抽象 假设我们使用C ++静态分析工具(Lint)发出警告,我们处理它们,然后通过添加注释来沉默这些警告,例如NOTREACHED(详情请参阅LINT Reference Manual):
int foo (char *s) {
if (NULL == s)
{
fatal("s is null in foo");
/*NOTREACHED*/
}
}
有关这些评论的更好位置的任何想法?
问题定义 我有一个自制的分析工具,使用// MULTIBYTE评论来沉默它:
// check allowed values here:
m_VIDEdit.GetWindowText(str1);//MULTIBYTE: passed 10/22/2013
int size1 = str1.GetLength();
int size2 = str2.GetLength();
if( !_tcsncmp( (LPCSTR)str1, (LPCSTR)str2, min( size1, size2 ) ) ) { // allow to edit default string
; //OK
}
关于更好地放置这些评论的任何想法,为了不超重С++代码,但仍然沉默工具? (工具本身可以任何方式修改)
可能的解决方案 我的想法是使用结构类似于.patch文件的外部文件。例如,XXXWizard / XXXWizard.comments文件将包含:
Index: XXXWizard/XXXWiz_Page.cpp
===================================================================
--- XXXWizard/XXXWiz_Page.cpp (revision 750)
+++ XXXWizard/XXXWiz_Page.cpp (working copy)
@@ -454,11 +454,11 @@
CString str2 = DEFAULT_VID_VALUE_DDR3;
// check allowed values here:
- m_VIDEdit.GetWindowText(str1);
+ m_VIDEdit.GetWindowText(str1);//MULTIBYTE: passed 10/22/2013
int size1 = str1.GetLength();
int size2 = str2.GetLength();
- if( !_tcsnccmp( (LPCSTR)str1, (LPCSTR)str2, min( size1, size2 ) ) ) { // allow to edit default string
+ if( !_tcsncmp( (LPCSTR)str1, (LPCSTR)str2, min( size1, size2 ) ) ) { // allow to edit default string
; //OK
} else { /// if it is not default string - allow only numbers here
m_Owner->CheckEditNumberEntry(&m_VIDEdit, true, 5000, -10);
但也许有更好的方法?