#include <cassert>
void assert (int expression )
expression 0 이 되면 assert error가 나타난다.
ex) assert( A != NULL );
A 가 NULL 이면 false(0) 이므로 assert error가 나오게 된다.
A 가 NULL 이 아니면 true(1) 이므로 pass.
assert 함수는 개발자가 오류가 생기면 치명적일 것이라는곳에 심어 놓는 에러 검출용 코드이다.
ex) 코드를 짰는데 특정 상황에서, 특정 변수 값이 0 이 되거나 음수가 되면 안돼! 라는 개발자가 가지고 있는 상황이 있을 것이고, 그 때 assert를 사용하여 검출하면 버그 발생위치, call stack등 여러 정보를 얻을 수 있다.
이는 대규모 프로젝트에서 dump를 남길 수도 있고, 상대적으로 적은 시간 안에 버그를 찾을 수 있게 된다.
중요한것은 assert 함수는 디버그 모드에서만 컴파일 된다는 점이다!
그렇기 떄문에 다른 코드에 영향을 주지 않는 코드만 넣어야한다.
[ 예시 ]
#include<iostream>
#include<cassert>
using namespace std;
int main(void)
{
int score;
while (true)
{
cout << "Input score : ";
cin >> score;
//0보다 작은 score가 들어오면 assert error!!
assert(score >= 0);
cout << "=> score : " << score << endl;
}
return 0;
}
[ 출력 ]
https://www.cplusplus.com/reference/cassert/assert/
https://blockdmask.tistory.com/286
'Language & etc > Reference' 카테고리의 다른 글
string 의 erase (0) | 2021.11.26 |
---|---|
substr (0) | 2021.11.15 |
std :: istringstream 에 대해서 (0) | 2021.11.15 |