갓차 (프로그래밍)

Gotcha (programming)

프로그래밍에서 gotcha는 시스템, 프로그램 또는 프로그래밍 언어의 유효한 구성물로, 문서화된 대로 작동하지만 직관에 반하며, 호출하기 쉽고, 결과에서 예기치 않거나 불합리하기 때문에 오류를 거의 유발한다.[1]

C/C++의 고전적인 gotcha는 구성이다.

만일 (a = b) 부호를 붙이다; 

그것은 구문론적으로 타당하다: 그것은 의 가치를 둔다.ba그리고 나서 실행한다.code만일a0이 아니다.때때로 이것은 심지어 의도된 것이다.하지만 가장 흔한 것은 오타다: 프로그래머는 아마도

만일 (a == b) 부호를 붙이다; 

실행된다.code만일a그리고b동일하다[1]현대의 컴파일러는 보통 컴파일러 옵션(예: 다음과 같이)에 따라 이전 구조(배정 조건부 분기, 비교가 아닌 할당)를 마주할 때 경고를 생성한다.-Wallgcc에 대한 옵션).이 gotcha를 피하기 위해, 예를 들어, 비교의 왼쪽에 상수를 두는 것이[2] 좋다.42 == x보다는x == 42. 이 방법, 사용=대신에==컴파일러 오류를 발생시킨다(요다 조건 참조).그러나 많은 종류의 고트카는 컴파일러에 의해 감지되지 않는다.[citation needed]

참고 항목

참조

추가 읽기

  • Stephen C. Dewhurst (2003). C++ Gotchas (Avoiding Common Problems in Coding and Design). Addison-Wesley. ISBN 0321125185.

외부 링크

  • 앤드루 코닉의 C 트랩과 함정
  • C++ Gotchas Stephen C가 가장 흔하고 파괴적이며 흥미로운 C++ 설계 및 프로그래밍 오류를 99가지나 피하고 수정하기 위한 프로그래머의 안내서.드워스트