0

摘要 假设我们使用 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);

但也许有更好的方法?

4

0 回答 0