본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 주어진 조건 확인 함수 assert()

C언어 주어진 조건 확인 함수 assert()

· 댓글 0 · 바다야크

C함수 주어진 조건 확인 assert()

assert는 주어진 조건이 거짓이면 오류 메시지 출력과 함께 코어 덤프를 출력하고 프로그램을 종료합니다.

  • 헤더: assert.h
  • 형태: void assert(scalar expression)
  • 인수: scalar expression 조건식
  • 반환: -

코어 덤프란?

실행 중인 프로그램에 대한 정보를 core라는 이름으로 파일로 저장하는 것을 코어 덤프라고 합니다. 만들어진 core는 디버깅에 사용됩니다.

그러나 실제로 사용해 보면 파일에 core를 만들지는 않는군요. 다른 옵션이 있는지 모르겠습니다만, 대신에 assert() 함수는 파일 이름과 행 번호를 알려주기 때문에 디버깅에 더 편리합니다.

C언어 assert() 함수 예제 1

#include <stdio.h>  
#include <assert.h>

int main( void)
{
   int   a, b;

   a  = 100;
   b  = 0;
   
   assert( b != 0);
   
   printf( "%d\n", (int)(a /b));

   return 0;
}

C언어 assert() 예제 실행 결과

]$ ./a.out
a.out: main.c:12: main: Assertion `b != 0' failed.
중지됨
]$

C언어 assert() 함수 예제 2

디버깅을 위해 assert()는 매우 편한 함수입니다. 그러나 나중에 정식으로 납품되는 프로그램에 assert()를 남겨 놓을 수는 없습니다. 그럼 일일이 모두 지워 주어야 하는데 쉬운 일이 아닙니다.

이럴 때에는 assert.h 앞에 NDEBUG를 정의하면 컴파일할 때 자동으로 assert() 코드를 제거하여 컴파일하게 됩니다.

#include <stdio.h> 
#define NDEBUG 
#include <assert.h>

int main( void)
{
   int   a, b;

   a  = 100;
   b  = 0;
   
   assert( b != 0);
   
   printf( "%d\n", (int)(a /b));

   return 0;
}

C언어 assert() 예제 실행 결과

]$ ./a.out
부동 소수점 예외
]$
SNS 공유하기
💬 댓글 0

이름을 저장합니다.

최근글
thumbnail 뿌리파리 살충제 오존 님오일 사용 후기 2 thumbnail 구글 어시스턴트 끄기 thumbnail 윈도우 노트북보다 애플 맥북이 좋은 이유 딱 하나! 4 thumbnail 윈도우 쉬프트 스페이스 한영전환 프로그램 jwShiftSpaceKey 58 thumbnail 인도고무나무 가지치기 시기와 준비물 thumbnail 유튜브 핸드폰 꺼도 소리를 계속 들으려면 1 thumbnail zsh: parse error near `)' 에러 해결 방법 1 thumbnail 인공지능 검색 마이크로소프트 빙에게 고양이를 그려달라고 했더니
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.