используя простой макрос assert () - PullRequest
1 голос
/ 28 октября 2010

Я новичок в программировании, и я нашел этот код, когда просматривал книгу. Я считаю, что это дает пример того, как использовать определенный макрос assert (). Он не компилируется в code :: blocks 10.05. Я получаю ошибки, такие как

  1. '#' не сопровождается параметром макроса
  2. не определено # остальное
  3. в функции 'int main ()' 'ASSERT' не было объявлено в этой области

Код:

#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 Ответ

2 голосов
/ 28 октября 2010
if(!(x))\
{\
       cout<<"Error!!Assert"<<#x<<"failed\n";\
       cout<<"on line"<<__LINE__<<"\n";\
       cout<<"in file"<<__FILE__<<"\n";\
} // no backslash
...