2016-06-24 2 views
0

최근에 나는 int, long int, long 등의 차이를 검색했습니다. 그리고 대답은 here입니다. 그리고 나는 longlong int이 동일한 것을 발견했습니다. 그래서 문 c = a *long(b);int에서 long int로 유형 변환

c = a * long int (b)

프로그램

int main() 
{ 
    int a = 10, b = 20; 
    long int c; 

    c = a *long(b); 
    cout << c; 

    return 0; 
} 

에서 동일해야하지만 두 번째 문은 오류를

[오류] 예상 차를 보여주고있다 -expression before 'long'

longlong int이 동일하면 왜 위의 두 문장에 오류가 있는지 알고 싶습니까?

+1

@ πάνταῥεῖ 너는 잘못된 코드를 사용하고있다. 롤 –

+0

@ LightnessRacesinOrbit 오, OP가 날 바보 취급했다 .-P ... –

답변

7

그냥 같은 유형이기 때문에 문자 그대로 소스 코드에서 문자를 교환 할 수 있다는 의미는 아닙니다.

T에 공백이 있으면 구문에 T() 캐스트가 혼동됩니다.

대신 c = a * (long int)b을 작성하십시오.

+0

좋은 물건. '(long int)'는 C- 웨이이고'static_cast '는 C++입니다. – Benoit

+0

@Benoit : 둘 다 C++에서 유효합니다. –

+0

C++에서 정말 경험이있는 것 같습니다. 나는 '유효'한 것이 무엇을 의미하는지 궁금합니다. 일하는거야? 허용 할만한가? 또는 완벽하게 적합한가? 내가 찾은 모든 참고 자료는 'C와 같은 캐스트를 사용하지 마십시오. C++'라고합니다. 중복으로 태그가 지정되기 때문에 질문을 열 수는 없지만 귀하의 게시물을 많이 읽었으며 그 의견에 대해 궁금합니다. – Benoit

0

대괄호를 사용하십시오. 예.

c = a * (long int) (b) 

유형 캐스팅 된 데이터 유형에는 다중 단어가 있습니다.

관련 문제