_CRT_SECURE_NO_WARNINGS 이 경고는 Visual C++ 2005 버전부터 만들어졌다.
이전 라이브러리에서 보완에 취약한 부분을 보완해서 _s가 붙은 라이브러리로 대체를 해야 한다는 뜻이다.
[방법1]
소스코드 첫 부분에
#define _CRT_SECURE_NO_WARNINGS
이렇게 한 줄을 추가하면 _s가 없는 것이 _s가 있는 것으로 자동으로 맵핑이 됨. (불확실)
[방법2]
소스코드 첫 부분에
#pragma warning(disable:4996)
이 줄을 추가하면 컴파일러가 경고를 내지 못하게 하는 역할.
[방법3]
프로젝트 속성에서 왼쪽 C/C++ 항목에서 전처리기에 있는 전처리기 정의에 '_CRT_SECURE_NO_WARNINGS'를 추가.
(또는 프로젝트를 선택한 후 Alt + F7)
가장 좋은 방법은 _s가 붙은 해당 함수를 사용.
대부분 _s가 뒤에 붙은 함수는 보안을 위해 인자가 한 개 늘어났다.
하지만 코드를 이식해야 되는 상황이 빈번하다면 얘기는 달라진다.
_s가 붙은 함수는 Visual Studio에서만 사용이 가능한 함수로 이식성 면에서 좋지않고
%c와 %s말고 나머지는 scanf와 동일하기 때문에 scanf를 사용하는 것이 좋다.
따라서, scanf_s를 쓰기 보다는 scanf의 인자 형식을 통해 메모리 오버플로우가 나지 않도록 하거나...
(참조 - scanf 매개변수(인자)의 형식 바로가기!!!)
아니면 다른 방법을 찾아서 해야한다.
그리고 분야에 따라 다르겠지만 scanf는 현업에서는 거의 사용되지 않기 때문에 기초를 공부하는 입장에서는 신경쓰지 말고
'#pragma warning (disable : 4996)'을 추가하여 넘어가는 것을 추천한다.
'Visual Studio' 카테고리의 다른 글
[Visual Studio] 코드 접기(Code Folding) (0) | 2024.12.22 |
---|---|
Visual Studio의 기본 바로 가기 키 (shortcuts) (0) | 2024.12.22 |
[Visual Studio] 코드 자동 정렬 (1) | 2024.12.22 |
[Visual Studio] summary로 함수 사용 시 주석 내용 표시하기 (0) | 2024.12.22 |
[Visual Studio] 빈 프로젝트로 새 프로젝트 생성 (0) | 2024.12.22 |