> 백엔드 개발 > C++ > C의 NULL 대 0: 더 나은 Null 포인터는 무엇입니까?

C의 NULL 대 0: 더 나은 Null 포인터는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-14 19:00:15
원래의
738명이 탐색했습니다.

NULL vs. 0 in C  : Which is the Better Null Pointer?

C의 포인터: NULL 대 0

C 프로그래밍 연대기에서 논쟁은 다음과 같습니다: NULL을 사용해야 할까요 아니면 0을 사용해야 할까요? 널 포인터의 경우 (0)? 일부 프로그래머는 0을 사용하는 전통을 고수하는 반면 다른 프로그래머는 NULL을 사용한다고 맹세합니다. 하지만 과연 어떤 접근 방식이 더 우수할까요?

원래 C에서는 NULL이 (void*)0으로 정의되어 있어서 사용할 수 없었습니다. 그러나 C11이 등장하면서 상황이 달라졌다. 이제 NULL은 명시적으로 0으로 정의되어 숫자와 기능적으로 동일하게 렌더링됩니다.

0을 옹호하는 사람들은 NULL이 진리값을 테스트하는 데 더 논리적인 선택이라고 주장합니다. 제공된 코드 조각에서 알 수 있듯이 0은 if(p && !q)와 같은 연산자를 사용하는 논리적 비교에 자연스럽게 맞습니다. 반면에 NULL을 사용하려면 NULL이 0이라고 가정하지 않는 한 NULL에 대한 명시적인 비교가 필요합니다. 이는 이름 지정 목적에 부합하지 않습니다.

C의 창시자인 Bjarne Stroustrup이 이 문제에 무게를 두었습니다. NULL과 0 사이의 선택은 대체로 미학적이라고 말합니다. 그러나 그는 매크로를 피하는 것을 선호하고 NULL과 관련된 잠재적인 오해로 인해 0을 선호합니다.

결국 NULL과 0 사이의 결정은 개인 취향의 문제입니다. 두 접근 방식 모두 장점이 있으므로 코딩 스타일에 가장 적합한 접근 방식을 선택하세요. 그러나 C 11에서는 이러한 목적을 위해 특별히 nullptr 키워드를 도입했다는 점에 주목할 가치가 있으므로 명확성과 일관성을 위해 사용을 고려해 볼 가치가 있습니다.

위 내용은 C의 NULL 대 0: 더 나은 Null 포인터는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿