C / C ++`! a` 대`a == 0`

the_candyman

정수 또는 포인터 a가 있으면 둘 다

!a

a==0

같은 행동을합니다. 매우 낮은 수준에서 계산 속도 측면에서 약간의 차이가 있습니까?

스티브 제솝

컴파일러는 논리적 동등성에 대해 알고 있으므로 둘 다에 대해 동일한 코드를 내보낼 수있는 이유가 없기 때문에 성능에 차이가있을 가능성은 거의 없습니다.

: 동등성은 초등학교가 아닌 일부 영리 정리 인 의미!a표준에 정의 된 정수 유형은 "값 a0과 동일"(또는 제임스 "의하지 (가치 지적으로 엄밀 a하지 0)") 및 !a포인터 유형 대한의 의미 는 " ais a null pointer"(또는 엄격히 말해서 "not (값이 anull이 아닌 포인터 임)"입니다.

그러나 컴파일러가 두 가지 모두에 대해 동일한 코드를 내 보내야한다는 요구 사항은 없으므로 C 또는 C ++ 표준에서 성능이 동일하다고 보장 할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C에서 0에 대한 포인터 역 참조

분류에서Dev

c의 주 함수에 대해 return vs return 0 사용

분류에서Dev

C-숫자를 0으로 대체하는 ntohl

분류에서Dev

0 = 250 | 18000 = 300 | 26000 = 0.86M에 대한 C ++ 정규식

분류에서Dev

0 = 250 | 18000 = 300 | 26000 = 0.86M에 대한 C ++ 정규식

분류에서Dev

ndigit [c- '0']에 대한 명확한 설명

분류에서Dev

# <Poll : 0x007f0a1c2610b0> [Chartkick]에 대한 정의되지 않은 메소드`group '

분류에서Dev

Memcpy C ++ 대안

분류에서Dev

$ 대신 C # DataGridView £

분류에서Dev

C ++ char * 대 int *

분류에서Dev

c ++ : const = 0 인 메서드 프로토 타입에 대한 코드 설명

분류에서Dev

C ++에서이 "vector [0] = 1;"에 대한 오버로드 해결 방법

분류에서Dev

C ++ C # 대리자 동등

분류에서Dev

"(a / b) * b + a % b-a"라는 표현은 C에서 0이 아닌 'b'에 대해 항상 0입니까?

분류에서Dev

Objective-C-[__ NSArrayM insertObject : atIndex :] : UITextField에 대한 색인 2가 경계 [0 .. 0] '을 초과했습니다.

분류에서Dev

C ++에서 동등성을 확인하는 두 가지 방법의 차이점 i == 0 대 0 == i

분류에서Dev

ID 0x7f0c0071에 대한보기를 찾을 수 없습니다.

분류에서Dev

java.lang.IllegalArgumentException : ID 0x7f0c0098에 대한보기가 없습니다.

분류에서Dev

f (n) = O (h (n))이면 모든 c> 0에 대해 c * f (n) = O (h (n))-증명이 요구됩니까?

분류에서Dev

C # 대리자 대 EventHandler

분류에서Dev

C ++ OpenCV SURF 대 SurfFeatureDetector 대 SurfDescriptorExtractor

분류에서Dev

10 행에 대해-(B2 * SUM (C2 : E2)> 0)에 대한 배열 수식?

분류에서Dev

C # CodeAnalysis ProtectedAndInternal 대 ProtectedOrInternal

분류에서Dev

C : fwrite () 대 (f) printf?

분류에서Dev

C ++ 세로 막대?

분류에서Dev

C ++ break 문 대안

분류에서Dev

입력 C ++ 대기

분류에서Dev

CTRL + D 대 CTRL + C

분류에서Dev

malloc의 C 대안

Related 관련 기사

  1. 1

    C에서 0에 대한 포인터 역 참조

  2. 2

    c의 주 함수에 대해 return vs return 0 사용

  3. 3

    C-숫자를 0으로 대체하는 ntohl

  4. 4

    0 = 250 | 18000 = 300 | 26000 = 0.86M에 대한 C ++ 정규식

  5. 5

    0 = 250 | 18000 = 300 | 26000 = 0.86M에 대한 C ++ 정규식

  6. 6

    ndigit [c- '0']에 대한 명확한 설명

  7. 7

    # <Poll : 0x007f0a1c2610b0> [Chartkick]에 대한 정의되지 않은 메소드`group '

  8. 8

    Memcpy C ++ 대안

  9. 9

    $ 대신 C # DataGridView £

  10. 10

    C ++ char * 대 int *

  11. 11

    c ++ : const = 0 인 메서드 프로토 타입에 대한 코드 설명

  12. 12

    C ++에서이 "vector [0] = 1;"에 대한 오버로드 해결 방법

  13. 13

    C ++ C # 대리자 동등

  14. 14

    "(a / b) * b + a % b-a"라는 표현은 C에서 0이 아닌 'b'에 대해 항상 0입니까?

  15. 15

    Objective-C-[__ NSArrayM insertObject : atIndex :] : UITextField에 대한 색인 2가 경계 [0 .. 0] '을 초과했습니다.

  16. 16

    C ++에서 동등성을 확인하는 두 가지 방법의 차이점 i == 0 대 0 == i

  17. 17

    ID 0x7f0c0071에 대한보기를 찾을 수 없습니다.

  18. 18

    java.lang.IllegalArgumentException : ID 0x7f0c0098에 대한보기가 없습니다.

  19. 19

    f (n) = O (h (n))이면 모든 c> 0에 대해 c * f (n) = O (h (n))-증명이 요구됩니까?

  20. 20

    C # 대리자 대 EventHandler

  21. 21

    C ++ OpenCV SURF 대 SurfFeatureDetector 대 SurfDescriptorExtractor

  22. 22

    10 행에 대해-(B2 * SUM (C2 : E2)> 0)에 대한 배열 수식?

  23. 23

    C # CodeAnalysis ProtectedAndInternal 대 ProtectedOrInternal

  24. 24

    C : fwrite () 대 (f) printf?

  25. 25

    C ++ 세로 막대?

  26. 26

    C ++ break 문 대안

  27. 27

    입력 C ++ 대기

  28. 28

    CTRL + D 대 CTRL + C

  29. 29

    malloc의 C 대안

뜨겁다태그

보관