728x90
반응형
assert 매크로는 assert.h 헤더 파일에 정의되어 있으며 정해진 조건에 맞지 않는 경우 프로그램을 중단한다.
1. assert에 지정한 조건식이 거짓(false)일 때 프로그램을 중단
2. assert에 지정한 조건식이 참(true)일 때는 프로그램을 계속 실행
단, Visual Studio 에서는 Debug 모드에서만 작동하며 Release 모드에서는 동작하지 않음
포인터가 NULL이면 프로그램을 중단하는 예제
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <assert.h> // assert가 정의된 헤더 파일 void copy(char *dest, char *src) { assert(dest != NULL); // dest이 NULL이면 프로그램 중단 assert(src != NULL); // src가 NULL이면 프로그램 중단 strcpy(dest, src); // 문자열 복사 } int main() { char s1[100]; char *s2 = "Hello, world!"; copy(s1, s2); // 정상 동작 copy(NULL, s2); // NULL이 들어갔으므로 프로그램 중단 // Assertion failed: dest != NULL, file c:\project\assert\assert\assert.c, line 8 return 0; }
728x90
반응형
'Programming > C | C++' 카테고리의 다른 글
[C++] vector 최댓값, 최솟값, 인덱스 구하기 (0) | 2021.06.18 |
---|---|
[C++] 파일 분할 작성 (0) | 2018.11.26 |
[C++] goto 문 (0) | 2018.09.07 |
[C++] 조건부 연산자 (0) | 2018.09.06 |
[C, C++] 메모리 함수 memset, memmove, memcpy, memcmp, memchr (0) | 2018.09.05 |