250x250
꾸준희
Enough is not enough
꾸준희
전체 방문자
2,319,223
오늘
157
어제
774

공지사항

  • 꾸준희 블로그
  • 분류 전체보기 (580)
    • 생각 (14)
    • Book Review (38)
    • Paper Review (18)
    • Research Topic (126)
      • Deep Learning (24)
      • Pose Estimation (29)
      • Object Detection (22)
      • Object Segmentation (3)
      • Object Tracking (11)
      • Video Surveillance (4)
      • Action Recognition (6)
      • Stereo Vision (6)
      • 3D Reconstruction (4)
      • Machine Vision (2)
      • Image Processing (11)
      • Dataset (4)
    • Development (76)
      • NVIDIA DeepStream (3)
      • NVIDIA TensorRT (30)
      • NVIDIA TAO Toolkit (2)
      • ONNX (8)
      • PyTorch (5)
      • TensorFlow (15)
      • TensorFlow Lite (1)
      • GPU | CUDA | PyCUDA (12)
    • Programming (147)
      • GStreamer | FFmpeg (6)
      • Python (27)
      • C | C++ (15)
      • OpenCV (34)
      • Linux (36)
      • Embedded linux (7)
      • Etc. (22)
    • Computer Science (62)
      • 학부 및 대학원 과목 (22)
      • 선형대수학 및 기타 수학 (7)
      • SQL-D (33)
    • 삽질 기록 (49)
    • 기타 (50)
      • 참고자료 (30)
      • 좋은 글 (5)
      • 티스토리 (2)
      • 논문 작성 관련 참고 (10)
      • 메모 (0)

블로그 메뉴

  • 👀 CV
  • 🌸 GitHub
  • 💌 LinkedIn
  • 📚 방명록

최근 댓글

  • python으로 만든 코드를 이제 a⋯
    android 초보
  • cannot resolve symbol 'type'⋯
    android 초보
  • 정확히 뭐라고 뜨나요?
    꾸준희
  • 앗 ㅠ 제가 오랜만에 스킨을 바⋯
    꾸준희
  • 선생님 ㅜㅠ 각도 계산하는 부⋯
    android 초보
07-04 07:57

티스토리

hELLO · Designed By 정상우.
꾸준희

Enough is not enough

Programming/C | C++

[C] assert 매크로

2018. 11. 26. 13:44
반응형



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;
}




참고자료 : https://dojang.io/mod/page/view.php?id=764

반응형
저작자표시비영리
  • 카카오스토리
  • 트위터
  • 페이스북

'Programming > C | C++' 카테고리의 다른 글

[C++] vector 최댓값, 최솟값, 인덱스 구하기  (0) 2021.06.18
[C++] 파일 분할 작성  (0) 2018.11.26
[C] assert 매크로  (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
    'Programming/C | C++' 카테고리의 다른 글
    • [C++] vector 최댓값, 최솟값, 인덱스 구하기
    • [C++] 파일 분할 작성
    • [C++] goto 문
    • [C++] 조건부 연산자
    꾸준희
    꾸준희
    생각과 기록 그리고 발전
    댓글쓰기
    다음 글
    [C++] 파일 분할 작성
    이전 글
    [C++] goto 문
    • 이전
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • ···
    • 15
    • 다음

    티스토리툴바