작성
·
2.7K
0
#define _CRT_SECURE_NO_WARNINGS를
#include <stdio.h> 이전에 쓰지 않고, 이후에 쓰면 오류가 뜨던데 왜 그런건가요?
답변 1
1
사람이 문서를 위에서부터 아래로읽듯이, 이와 마찬가지로 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 안정성 에러 무시하라는게 반영이 됩니다.