替代C ++注释以使警告静音

时间:2013-10-23 08:53:45

标签: c++ visual-studio-2008

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

但也许有更好的方法?

0 个答案:

没有答案