2014-02-24 5 views
4

내가 구글 코드 잼의 솔루션에서이 코드C++의 "a <? = b"는 무엇을 의미합니까?

a<?=b; // (a and b are int) 

을 보았다.

내 VS에서 '?'에 오류가 표시됩니다.

나는 단지 다음 알고

a>b?a=0:b=0; 

감사합니다.

+1

아마도 작동하지 않을 수 있습니다. –

+3

유효한 c/C++처럼 보이지 않습니다. –

+0

https://code.google.com/codejam/contest/32003/scoreboard?c=32003#vf=1 문제 C에 대한 sclo의 답변을 확인하십시오. 40pt. – czhao86

답변

9

이전 연산자; 그것은 (이후 제거 된) '최소'에 대한 gcc 확장입니다. 즉 :

a = a < b ? a : b; 
+1

와우, 나는 그게 유효하지 않았다고 확신했다. – jeremy

+0

@ jeremy 아니야. –

+1

나는 C/C++가 유효하지 않다고 생각하지만 gcc가 유효하다 (또는 gcc가 유효했다). – jeremy

1

C++로 비표준 GCC 확장 min 동등 연산자로 <? 허용 :로

a <?= b; 

는 동일하다. 나는 이전에 <?=을 보지 못했지만 아마도 그것은 적절한 버전이다. 즉, a <?= ba = min(a,b)과 같습니다.

GCC 개발자는 다음날 아침에 깨어나서 무슨 나쁜 생각인지 깨달았습니다. 이제 연산자가 사용되지 않습니다.

1

b보다 큰 경우 a를 b로 설정합니다.

본질적으로 동일 같이

a = a < b ? a : b; 

예 : 비록 이와 같은 용액을 사용하여 실제로지지 않을

int a = 5; 
int b = 2; 
a<?=b; //a is now 2! 

그것은 끔찍한.

다른 사람들도 말했듯이, 비표준 GCC 확장 프로그램의 일부이지만 사용하지 마십시오.

관련 문제