kb6912   6년 전

C로 코드를 짰습니다.

아무리 봐도 틀린 부분이 없는데 틀렸다고 해서

C++로 돌렸더니 바로 맞네요

어디가 문제여서 그런 걸까요??

D함수 형변환 문제인가요?

yukariko   6년 전

abs 함수는 C에선 int를 인자로 받아 int를 리턴합니다.

C++에선 template가 적용됩니다.

이 차이로 답이 갈리는것 같네요.

추가하자면 똑같은 코드가 C / C++에서 결과가 달랐을 경우

가장 크게 의심해 볼 수 있는것은 Undefined behavior인 코드 입니다.

변수 초기화가 안되었거나 배열의 index를 넘어가는 코드가 있는지 의심해 볼 수 있을것 같습니다.

이 코드에는 그런문제는 딱히 없는것같네요.

buttercrab   6년 전

`void Q`에서 인자로 `int l`을 받는데 이미 전역 변수에 있네요.

아마도 C에서는 두 변수가 충돌하지 않았을까 싶네요.

kb6912   6년 전

@yukariko

VS2010 기준으로 abs 함수는 double도 받는거 같은데 라이브러리 math.h 쓰지말고 만들어서 써봐야겠습니다.

추가적으로  C/C++에서  차이나는 것에 대해 알려주셔서 감사합니다!


@jaeyong0201

문자가 같은 변수는 지역변수가 우선 순위가 높은 것으로 알고 있습니다! 감사합니다:D

댓글을 작성하려면 로그인해야 합니다.