출처 : http://navylela.tistory.com/210

컴파일 시 발생하는 C4996 경고는 아래 프리프로세서로 없앨 수 있다.

#define _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_WARNINGS

하지만 이건 경고문만 없애주는 것이지 근본적인 해결책은 아니다.

근본적으로 문제를 해결하려면

경고문에서 나타나듯이 사용한 함수명_s 와 같은 형식으로 바꾸어서

필요한 파라미터를 더 추가해주고 사용하면 된다.

MS에서 기존 함수의 보안문제(?)로 인해 함수를 새로 정의해버렸다고 하며 사용을 권하고 있다.

만일 unix 에서도 돌아가야 할 프로그램이라면

ifdef - endif 문을 사용하여 각각 플랫폼에서 작동할 함수에 대해

모두 구현해주어야 한다.

#ifdef WIN32
          scanf_s( ... );
#elseif UNIX
          scanf( ... );
#endif
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요