摘要 假设我们使用 C++ 静态分析工具 (Lint) 发出警告,我们对其进行处理,然后通过添加注释来消除这些警告,例如 NOTREACHED(有关详细信息,请参阅LINT 参考手册):
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);
但也许有更好的方法?