정수 또는 포인터 a
가 있으면 둘 다
!a
과
a==0
같은 행동을합니다. 매우 낮은 수준에서 계산 속도 측면에서 약간의 차이가 있습니까?
컴파일러는 논리적 동등성에 대해 알고 있으므로 둘 다에 대해 동일한 코드를 내보낼 수있는 이유가 없기 때문에 성능에 차이가있을 가능성은 거의 없습니다.
: 동등성은 초등학교가 아닌 일부 영리 정리 인 의미 의 !a
표준에 정의 된 정수 유형은 "값 a
0과 동일"(또는 제임스 "의하지 (가치 지적으로 엄밀 a
하지 0)") 및 !a
포인터 유형 에 대한의 의미 는 " a
is a null pointer"(또는 엄격히 말해서 "not (값이 a
null이 아닌 포인터 임)"입니다.
그러나 컴파일러가 두 가지 모두에 대해 동일한 코드를 내 보내야한다는 요구 사항은 없으므로 C 또는 C ++ 표준에서 성능이 동일하다고 보장 할 수 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다