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 중국어 웹사이트의 기타 관련 기사를 참조하세요!