본문 바로가기
기초 코딩/C 언어

#define _CRT_SECURE_NO_WARNINGS 는 왜 써야하는가?(부제: C4996은 왜 나오나요?)

by 실패한_상담사 2024. 5. 24.
반응형

들어가며..

 

가끔 C 언어 교재를 보다보면 '#define _CRT_SECURE_NO_WARNINGS'를 코드 상단에 넣고 실행하라는 경우가 있습니다. 왜 이러는걸까요?

 

비주얼 스튜디오에서 여러함수는 더이상 사용되지 않을 때가 많습니다. 안전하지 않은 그런 함수들은 만약을 위해 기능이 남겨져는 있지만, 코드를 짜는 개발자에게는 최대한 사용을 말리며 다른 방법을 사용하도록 권장하는 경우가 많지요.

 

scanf()를 사용하면 안전하지 않으니 scanf_s()를 사용하라며 경고를 띄우거나, 설정에 따라 컴파일 오류를 발생 시켜 코드의 수정을 유도할 때도 있습니다.

C4996 에러. 코딩에 막 입문한 사람에게 이런 에러는 너무 무서울 때가 많습니다.

보통 처음 코딩을 연습하는 사람들에게 이런 오류 출력은, '내가 심각하게 무언가를 잘못한게 아닐까?' 하는 걱정을 생기게 합니다. 물론 상용/실사용 목적의 프로그램을 짠다면 경고/오류 출력을 끄지 않고 이러한 '더이상 사용되지 않는' 함수,변수는 되도록 사용하지 않는 것이 좋습니다. 하지만 기초적인 코딩 연습을 하시려는 분들은 '#define _CRT_SECURE_NO_WARNINGS'를 이용해 비주얼 스튜디오에서 이러한 경고/오류를 끄신 뒤 하시던 연습을 계속 하실 수 있습니다.

 

물론 다른 방법도 있지만, 이 방법이 제일 무난하고 사용하시기 편한 방식이니 하단의 코드를 복사해 사용해주세요.

 

복사해서 사용하시면 되는 코드

#define _CRT_SECURE_NO_WARNINGS
//작성하신 코드 최상단에 이 코드를 올려주세요.

 

 

 

보안 경고를 끄는 해당 코드를 입력한 모습입니다.

 

 

참고하시기 좋은 링크:

 

마이크로 소프트 컴파일러 경고 C4996

반응형

댓글