• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

3.6 정수의 오버플로우 강의 중 _itoa 함수 오류

23.01.25 10:26 작성 23.01.25 10:34 수정 조회수 445

1

스크린샷 2023-01-25 오전 10.19.42.png스크린샷 2023-01-25 오전 10.19.31.png

안녕하세요 선생님!

강의를 따라하던 도중 itoa 함수에 오류가 떠서 질문드립니다.

분명 선생님과 똑같이 친 것 같은데 왜 오류가 날까요??

뭐가 문제일까요...????

어떻게든 고쳐보려고 오류 나온 문구를 구글링 해보니까 itoa함수가 표준함수가 아니라서 오류가 난다는데...ㅜㅜ

솔루션 보니깐 그냥 sprintf라는 함수를 사용하라 하더라구요..

아니면 itoa 함수를 직접 정의하라던데 아직 걸음마 걷는 입장에서는 그 방법이 도저히 이해가 안가서..

해결책이 궁금합니다ㅜ

 

답변 2

·

답변을 작성해보세요.

0

Jun님의 프로필

Jun

2023.07.08

C언어 표준버전이 C89, C99이렇게 두개가 있는데 우리가 요즘 사용하는게 대부분 C99 버전이고 C99 표준 라이브러리에는 _itoa 함수가 없나봐요! (C89 표준 라이브러리에 있는듯 해요) 그래서 C89 표준과 호환이 컴파일러 모드를 설정해주면 되고 그게 위에 민철님이 설명해주신 방법인것같아요! 저도 걸음마 단계인지라 확실하지는 않지만...일단 제가 알아낸 바에 의하면 이러합니다. 다른 수강생 여러분, 혹시 제 설명에 틀린게 있다면 피드백 해주세요!

0

강민철님의 프로필

강민철

2023.01.26

_itoa는 비표준 함수이기 때문에 C99와 호환되지 않는 문제입니다.

gcc 나 clang을 쓰고 계신다면 아래와 같이 -std=c89 옵션 등

질문자님 환경에 호환이 되는 다른 버전으로 빌드해보세요.

 

$ clang -std=c89 foo.c

 

사용할 수 있는 std 옵션의 목록은 아래 링크를 참고해보시기 바랍니다.

https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html