使用一个简单的assert()宏

时间:2010-10-28 01:27:14

标签: c++ assert

我是编程和新手的新手。我在阅读一本书时发现了这段代码。我相信它给出了一个如何使用已定义的assert()宏的示例。它不能在代码:: blocks 10.05上编译。我收到了诸如

之类的错误
  1. '#'后面没有宏参数
  2. 未终止的#else
  3. 在函数'int main()''ASSERT'未在此范围内声明
  4. 代码:

    #include<iostream>
    #define DEBUG
    
    #ifndef DEBUG  
    #define ASSERT(x)
    #else
    #define ASSERT(x)\   
    if(!(x))\
    {\
           cout<<"Error!!Assert"<<#x<<"failed\n";\
           cout<<"on line"<<__LINE__<<"\n";\
           cout<<"in file"<<__FILE__<<"\n";\
    }\
    #endif
    
    using namespace std;
    
    int main()
    {
        int x = 5;
        cout<<"\nFirst assert.";
        ASSERT(x==5);
        cout<<"\nSecond assert.";
        ASSERT(x!=5);
        cout<<"\nDone."<<endl;
    
        return 0;
    }
    

    非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

if(!(x))\
{\
       cout<<"Error!!Assert"<<#x<<"failed\n";\
       cout<<"on line"<<__LINE__<<"\n";\
       cout<<"in file"<<__FILE__<<"\n";\
} // no backslash