• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

#define _CRT_SECURE_NO_WARNINGS에 관해서

21.06.06 19:51 작성 조회수 1.45k

0

#define _CRT_SECURE_NO_WARNINGS를 

#include <stdio.h> 이전에 쓰지 않고, 이후에 쓰면 오류가 뜨던데 왜 그런건가요?

답변 1

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.06.07

사람이 문서를 위에서부터 아래로읽듯이, 이와 마찬가지로 C 언어 또한 코드를 위에서부터 아래로 찬찬히 읽으며 컴파일 합니다. 

#define _CRT_SECURE_NO_WARNINGS를 사용해주는 이유는 scanf 같은 입력 함수를 사용할 때 안전성 에러를 무시하기 위함인데 

#define _CRT_SECURE_NO_WARNINGS를 #include <stdio.h> 보다 아래에 써주면 이 안전성 에러를 무시하라는 메세지가 <stdio.h> 안에 있는 scanf 에 반영이 되지 않습니다.  <stdio.h>  는 이보다 위에 있어 이미 컴파일 하고 지나가버린 상태이기 때문입니다.

그래서 #define _CRT_SECURE_NO_WARNINGS 을 #include <stdio.h>  보다 먼저 써주야 scanf  안정성 에러 무시하라는게 반영이 됩니다.