Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
Undefined Behavior and Sequence Points (C++ FAQ entry)간단한 파싱 질문
++ 어떻게 표현 x+++++y
는 구문 분석? x++ ++ +y
또는 x++ + ++y
으로?
Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
Undefined Behavior and Sequence Points (C++ FAQ entry)간단한 파싱 질문
++ 어떻게 표현 x+++++y
는 구문 분석? x++ ++ +y
또는 x++ + ++y
으로?
x+++++y
은 x ++ ++ + y
으로, x ++ + ++ y
으로는 분석되지 않습니다. Maximal Munch principle에 따르면 "토크 나이 것은 의미 생산을 중단하기 위해 현재의 토큰을 한 번 더 문자를 원인 추가 될 때까지 소스 파일에서 문자를 읽어 유지해야"
x++ ++ +y
(C 및 C++에서) 컴파일되지해야 후행 증가 연산자 때문에 ++
은 lvalue
을 인수로 사용하고 rvalue
을 반환합니다.
이것은 욕심 많은/가장 긴 일치를 사용하는 모든 언어에 해당됩니다 토큰 화에 대한 정규 표현식 - 대부분이되어야합니다 (실제로는 그렇지 않습니다). – delnan
* "'x ++ ++ + y'는 컴파일해서는 안됩니다. * 그리고 실제로는 (gcc에) :'error : incremental 피연산자가 필요합니다 .' 와우는 그것을보기 위해 안심했습니다. –
불행히도 '++++++++++'의 모든 형식이 호환되지 않는 것은 아닙니다. MSVC는 적어도 행복하게 그들 중 일부를 받아 들인 다음 WTF가 그걸로 무엇을 알고 있는지 않습니다. 인턴에게는 언제나 할 수있는 작은, 사내 유용이 있습니다 (내 결정이 아님). 그것은 그 곳의 모든 것의 똥을 가지고 있습니다. –
실제로 쓰는 것을 고려하지 않았습니다. 그렇습니까? * 맞습니까? * ;-) –
난독 화 코드 경쟁에 참가 하시겠습니까? – jball
jesus mary joseph – filipe