如题。

解决方案 »

  1.   

    右键点击,选goto definition看一下不就清楚了?
      

  2.   

    只在debug下作用,release時不會起作用。建议在是用时,不仅要在可能出现错误的地方设置断言,而且要处理错误,否则在release下,错误会带来数据的灾难。如判断指针是否为空
    if ( p == null )
    {
        ASSERT( FALSE );
        return;
    }比 ASSERT( p ); 要好
      

  3.   

    注意这是一个宏,不是函数,用于Debug版中的断言,有助于调试,在Release版本中不起作用(编译器会跳过此句)。
      

  4.   

    一个调试宏,用来判断值的合法性。定义差不多是这样子的#ifndef NDEBUG#define Assert( p ) { if ( !p ) \
                          )//输出一些调试报错信息,VC里面就是对话框,有些是输出语句
                          printf("%s(%d) Assert( %s ) failed!\n",__FILE__,__LINE__,#p);\   
                          abort();
                          }
    #else
    #define Assert( p )  void(0)  //非调试版本是什么都没有
    #endif
      

  5.   

    你可以按照我的那个样本写出任何你自己的断言语句。#ifndef NDEBUG#define Assert( p ) { if ( !(p) ) \
                          //输出一些调试报错信息,VC里面就是对话框,有些是输出语句
                          printf("%s(%d) Assert( %s ) failed!\n",__FILE__,__LINE__,#p);\   
                          abort();
                          }
    #else
    #define Assert( p )  void(0)  //非调试版本是什么都没有
    #endif
      

  6.   

    还是写错了,笔误。#ifndef NDEBUG#define Assert( p ) { if ( !p ) \
                          printf("%s(%d) Assert( %s ) failed!\n",__FILE__,__LINE__,#p);\   
                          abort();\
                          }
    #else
    #define Assert( p )  void(0) 
    #endif
      

  7.   

    ASSERT()断言,在debug的版本下判断条件是否成立,不成立,出现提示。
      在relase版本下,忽略该行。因此慎用!
    VERIFY(),和ASSERT()功能相同。只是该宏在debug/release版本下都起作用。推荐使用!
      

  8.   

    VERIFY(),和ASSERT()功能相同。只是该宏在debug/release版本下都起作用。推荐使用!
    ==================================================================================觉得不要推荐使用VERIFY(),这些本来就是调试的时候才需要的,在发行的时候不需要这些宏。你不会让最终用户看你的那个什么断言错误提示吧?他们怎么看得懂?明确出错的地方要加上防错的分支语句。所以推荐使用ASSERT(),而在必要的地方才能使用VERIFY()。