C-Language/VC C4996 Error

Visual C++ disable C4996 Error

Soul-Learner 2017. 1. 3. 17:37

VisualC++ 에서 C언어 작성시 C4996 오류 제거하기



Visual C++에서 C언어 프로그램 작성시 scanf() 함수를 사용하는 행에서 다음과 같은 컴파일 오류가 발생하는 경우가 있다.

error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.


scanf() 함수가 보안상 취약해서 scanf_s()를 사용해야 한다는 메시지인데 그럼에도 불구하고 이런 오류가 발생하는 것을 막고 scanf() 함수를 사용하려면 _CRT_SECURE_NO_WARNINGS를 사용라는 메시지이다.


프로젝트를 생성할 때 설정하는 방법

프로젝트를 생성할 때 아래 그림처럼 SDL(Security Development Lifecycle) 항목의 체크를 해제하면 된다



프로젝트 생성 후에 프로젝트 위에서 마우스 우측을 누르고 속성창에서 다음과 같이 ;_CRT_SECURE_NO_WARNINGS; 을 입력해도 된다



프로그램 코드를 이용하여 처리하는 방법

코드상에 전처리 명령어로 #pragma warning(disable: 4996) 를 사용하거나


또는 #define 명령을 사용하여...

#ifdef _MSC_VER

#define _CRT_SECURE_NO_WARNINGS

#endif