인프런 커뮤니티 질문&답변

chang님의 프로필 이미지
chang

작성한 질문수

홍정모의 따라하며 배우는 C언어

11.11 문자열을 숫자로 바꾸는 방법들

_itoa() error!

작성

·

228

0

안녕하세요 10분경~12분 이후 강의를 듣다가 제 환경에서는 실행이 되는 것 같지 않아 질문드립니다.

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char * argv[])
{
char temp[100] ;
puts(_itoa(10, temp, 16));
 
sprintf(temp, "%x", 10);
puts(temp);

return 0;
 
}
 

안녕하세요 11분경 이후 강의를 듣다가 제 환경에서는 실행이 되는 것 같지 않아 질문드립니다. 다음과 같이 코드를 짰고, 이를 돌려보려 하였으나 오류가 아래와 같이 났습니다.

 

 

'_itoa()가 C99에서는 작동하지 않는다'라고 이해했고, 혹시나 표준으로

이름이 바뀌기 전인 itoa()를 사용하나 싶어서 itoa()로 코드를 바꾸고

돌려보았지만,

 

동일하게 에러가 발생하였습니다.

 

구글을 둘러보니 코딩을 할 때마다 _itoa()를 정의하라고 하는데,

더 좋은 방안이 있을 것 같아 질문을 드립니다.

문제가 무엇이고, 앞으로 _itoa()를 문제없이 사용하려면 어떻게

해야하는지 여쭤보고 싶습니다. 감사합니다!

 

 

 

답변 1

0

안녕하세요, 말씀하신대로 C99와 호환되지 않는 문제입니다.

참고로, 질문자님 환경에서 작동하지 않는다고 하셨는데,

어떤 환경인지 알려주시면 제가 더 자세히 알려드릴 수 있을 것 같습니다...ㅠㅠ

 

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

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

 

$ clang -std=c89 foo.c

 

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

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

 

chang님의 프로필 이미지
chang

작성한 질문수

질문하기