2012-06-21 4 views
-5

기능 SIGN (더블 X 더블 Y) C++ 언어에서하는 방법과 C++ 코드에서 #기능 SIGN C에서 (더블 X 더블 Y) ++

+0

이 부호가 두 개의 인수를 취하고 그물에 아무 것도 찾을 수없는 부호 (double)를 반환합니다. –

+0

아마도 표준 C++ 함수가 아니기 때문일 수 있습니다. – mfontanini

+0

어떤 C++ 라이브러리를 사용하고 있습니까? – MiJyn

답변

1

c를 당신이 C 번호로 변환하는로 번역을하는 일, SIGN에 대한 매크로 정의 또는 인라인 함수 정의를 찾으십시오. 정의는 C#에서 어떻게 구현해야하는지 정확히 설명해야합니다.

SIGN(x,y)xy에 동일한 부호가있는 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. 그런

2

함수는 아마도 누군가가 C에서 같은 기능을 구현

SIGN(A,B) returns the value of A with the sign of B. 

If B >= 0 then the result is ABS(A), else it is -ABS(A). 

Fortan http://gcc.gnu.org/onlinedocs/gfortran/SIGN.html에 존재 ++ (하지만 뭔가 정의가 아닌 C의 표준 ++ 또는 표준 라이브러리).

이의 C# 버전은

A = Math.Abs(A); 
    if (B<0.0) A = -A; 
+0

'A = B = -1'이면'A * Math.Sign (B)'는'B'와 같은 부호를 가지지 않을 것입니다. – aioobe

+0

, 서둘러서 고마워. – hatchet

+1

'Math.Abs ​​(A) * Math.Sign (B)'해야합니다. – aioobe

0

C++ 표준 라이브러리가 더 SIGN() 기능이없는 것입니다. 귀하의 질문은이게 무엇인지 확실하게 말해 줄 수있는 충분한 정보를주지 못합니다. 그러나 SIGN()은 C++이 오래된 프로그래밍 언어 C를 계승하고, 내 정보에 따르면 SIGN()전 처리기 매크로이 이전 C 스타일로 정의되어 있습니다.

코드에서 #define SIGN으로 시작하는 줄을 찾으십시오. #defineSIGN 사이에 둘 이상의 공백이있을 수 있습니다. 그 라인을 찾으면, 당신의 SIGN()이 무엇이고 당신에게 무엇이 있는지 말할 것입니다.