문제

나는 이것에 대해 매우 긍정적이지만 안전한면에 있습니다.

C 표준은 체인 (a && b && ...)을 왼쪽에서 오른쪽으로 평가하고 0이있는 즉시 평가가 중단 될 것을 보장합니까?

OR에 대해 동일한 질문. (1이있는 즉시)

다른 C 스타일 언어에 대해 이것을 믿을 수 있습니까?

이 코드는 안전합니까 :

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
도움이 되었습니까?

해결책

예, C, C ++ 및 C#에 대해 보장됩니다. "짧은 커커스 평가"가 활성화 된 델파이도 마찬가지입니다.

이것은이 순간에 수많은 코드 라인이 의존하는 행동입니다.

다른 팁

예, C와 C ++에 의해 표준화됩니다.

예, C의 운영 순서에 대한 귀하의 가정이 정확하고 코드 스 니펫이 의도 한대로 작동합니다. 다른 "C 스타일"언어를 사례별로 가져갈 것입니다.

예, 그렇습니다.

나는 그것이 불분명하다고 생각하는 사람들을 보았고,이 형식으로 &&를 대체했습니다.

if (a)
if (b)
if (c)
if (d) {
}

개인적으로 나는 그것이 좀 못 생겼다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top