저는이 관용구가 얼마나 잘 알려져 있는지에 관한 문제라고 생각합니다.
예를 들어, 리눅스 커널은 많은 관용구를 가지고 있습니다.
예를 들어,
static int x = 0;
대신에 다음을 수행하십시오.
static int x;
(컴파일러는 제로를 만들 것입니다, 커널 사람들과 함께 내가 아니라 주장한다..)
을 당신은하지 않습니다
경우 (X를!= NULL)
당신이 할 :
(x)의
당신이하지 않는
경우 :
경우 (뭔가 ==를 무엇이든) 반환 0; else return 1;
당신이 할 일 :
return (something! = whatever);
그리고, 논리 값과 정수의 때때로이 혼합이 같은 정말 편리 나올 수 있습니다 build_assert.h
의 고기입니다 :
#define EXPR_BUILD_ASSERT(cond) \
(sizeof(char [1 - 2*!(cond)]) - 1)
그들은 오류 처리 경로에 대해 자유롭게 gotos를 사용하는 조금 contrarian입니다.
가독성과 유지 보수성 측면에서 한 두 라인의 문제가있을 수 있습니다. 그것은 사소한 것들입니다. 관리 성 및 가독성 부서의 실제 고기는 (내 경험에 의하면) 대규모 규모의 것들입니다. 나에게 많은 OOP 자료는 코드를 쓰기 쉽도록 만들고, 읽기가 어렵고, 디버그하기가 더 어렵다. 내게 그것은 순손실이다. 그래서, 나는 oop의 큰 팬이 아니야. 죄송합니다 ... 주제를 바꿨습니다.