내가 읽고있다Linux 커널 코딩 스타일, Linus는 다음과 같이 썼습니다(1장 들여쓰기):
숨길 것이 없다면 한 줄에 여러 문장을 넣지 마세요:
if (condition) do_this; do_something_everytime;
...
주석, 문서 및 Kconfig를 제외하고는 들여쓰기에 공백이 사용되지 않으며 위의 예는 의도적으로 깨졌습니다.
무슨 뜻인가요
something to hide
? 이것이 아이러니한가? 이 형식에 대한 인코딩 포인트는 물론 볼 수도 없기 때문입니다hide something
.또 다른 질문이 있습니다.
위의 예는 의도적으로 깨졌습니다.
의미는? 그게 무슨 뜻인가요?
위의 예는 의도적으로 이(공백 없음) 규칙을 위반했습니다.
감사해요: )
답변1
이러한 코딩 스타일은 코드의 목적을 오해하기 쉽습니다. 이 예에서는 들여쓰기와 같은 줄에 다른 명령문이 있기 때문에 해당 명령문이
do_something_everytime
블록에 있고if
true인 경우에만 실행될 것이라고 잘못 생각할 수 있습니다.condition
대신if
블록은 포함do_this
하고do_something_everytime
항상 실행됩니다.이 "악의적인" 들여쓰기는 과거 Apple의 유명한 소프트웨어와 같은 소프트웨어에서 버그를 일으켰습니다.TLS 인증서 확인Safari 및 기타 Apple 소프트웨어에 영향을 미칠 수 있습니다.
또한 이 예는 설명에 명확하게 명시된 공백 금지 규칙을 위반합니다.