Nagie's DevStory

[C] 04. C언어의 시작, HelloWorld 출력하기 ( 2 ) 본문

Programming/C

[C] 04. C언어의 시작, HelloWorld 출력하기 ( 2 )

Nagie 2023. 9. 2. 18:20
728x90

전 글에서 작성한 코드 중에 printf를 사용하지 않고 printf_s를 사용한 이유를 설명하려고 한다.

 

우선 printf는 C99 문법이라 상당히 오래된 역사가 있고 세월이 흐름에 따라

 

보안 취약점과 버퍼 오버플로우 같은 문제점이 발견되어 안정성이 떨어지므로 

 

C11에서 보안 취약점과 버퍼 오버플로우 문제를 해결한 printf_s를 추가했다.

 

그래서 개선된 게 있다면 당연히 개선된 걸 쓰는게 맞다 생각해 printf 대신 printf_s를 사용했다.

 

물론 C11을 사용하지 않고 C99를 사용하는 환경에선 printf_s를 사용해선 안 되며

 

최신 IDE에서 굳이 안정성이 떨어지는 구문법을 사용하겠다면 

 

#define _CRT_SECURE_NO_WARNINGS

 

위의 코드를 소스 첫줄에 삽입 하는걸로 경고나 에러없이 사용할 수 있다.

728x90
Comments