티스토리 뷰




최신 버전의 VS에서 scanf / strcpy / fopen 등등의 함수를 사용하고자 하면

위와 같은 C4996 오류 메세지가 뜨는것을 쉽게 확인할 수 있다.



C에서는 문자열, 파일에 관련된 버퍼나 스택 등 메모리에 문제가 생길 가능성이 있어서,

사이즈를 받는 _s 함수의 사용을 권장하기 때문에.. 이런 오류가 뜨는 것이라고 한다.

(+ 보안문제라는 말도 있고.. 암튼 최신 버전에서 기존에 쓰던 _s빠진 함수는 권장하지 않는다고 함)


이런 오류를 해결하기 위한 방법이 바로 _CRT_SECURE_NO_WARNINGS !

아래의 두 방법 중 하나만 적용해도 해결이 가능하당


첫째, 프로그램의 상단에 #define _CRT_SECURE_NO_WARNINGS 를 추가한다.


둘째, 프로젝트 속성 - 구성 속성 - C/C++ - 전처리기 탭에서

전처리기 정의에 ;_CRT_SECURE_NO_WARNINGS 를 추가한다.



+) 나는 첫번째 방법으로 해결이 안되서 매번 두번째 방법을 사용해서 해결하고 있다.

^_ㅠ 왜 안되는지는 모르겠다.. 나중에 불편해지면 찾아봐야지



댓글