2024. 4. 26. 21:26ㆍPersonal/Misc.
아래 링크 클릭 시 해당 본문으로 이동
C++ 강의 영상을 보다가 내가 쓰는 중괄호 스타일과 강의해 주시는 분의 중괄호 스타일이 다른 것을 알게 됨.
나는 K&R 스타일로, 강의 영상에서는 BSD 스타일로 중괄호를 작성함.
아직까지 불편함을 느끼지는 않았지만 다른 스타일은 뭐가 있고 무슨 차이가 있는지 궁금해짐.
(보다 보니까 K&R에서 BSD로 중괄호 스타일을 바꾸고 싶어 졌음.)
블록
• 어떤 동작을 수행할 때 필요한 코드를 묶어놓은 것
• 프로그래밍 언어 ➜ 중괄호 또는 들여 쓰기로 구분
GNU
• 중괄호 ➜ 해당 조건 아래에 작성
이 스타일을 사용하는 경우는 한 번도 못 봤다.
int main()
{
int i;
for (a = 0; a < 5; ++a)
{
i = 10;
if (a % 2 == 1)
{
i = 0;
}
else
{
i = -1;
}
}
return 0;
}
1) 장점
• 해당 조건에 속한 블록인 것을 분명히 표시함. ➜ 구조가 잘 보인다.
2) 단점
• 들여 쓰기를 많이 한다.
때문에 수평으로 많은 코드를 작성할 수 없고 코드 줄이 늘어난다.
K&R
• 중괄호 ➜ 해당 조건과 같은 줄에 배치
• C 계열 창시자들이 사용하던 스타일
• Java 계열 이클립스(Eclipse) , C++, JavaScript 등의 기본 포맷팅
int main() {
int i;
for (a = 0; a < 5; ++a) {
i = 10;
if (a % 2 == 1) {
i = 0;
} else {
i = -1;
}
}
return 0;
}
1) 장점
• 수평으로 많은 코드를 작성할 수 있다.
• 코드 줄 수를 절약할 수 있어서 한눈에 많은 코드를 볼 수 있다.
프로그래밍 언어 교재에서 자주 보이는 스타일이다. ➜ 코드량이 줄면 페이지 수도 줄어들기 때문이다.
2) 단점
int main() {
int i;
for (a = 0; a < 5; ++a) {
i = 10;
if (a % 2 == 1) {
i = 0;
} else {
i = -1;
}
}
// for문이 있는 줄만 통째로 지웠을 때 → 문제 발생
i = 10;
if (a % 2 == 1) {
i = 0;
} else {
i = -1;
}
}
return 0;
}
• for문이 있는 줄만 통째로 지울 수 없다.
➜ K&R은 같은 줄에 중괄호가 있기 때문에 해당 줄을 지웠을 때 문제가 생긴다.
BSD
• 중괄호 ➜ 해당 조건 아래에 작성
• Visual Studio의 기본 포맷팅
• [GNU] 블록의 소속을 분명히 한다. + [K&R] 수평으로 많은 코드를 작성할 수 있다.
int main() {
int i;
for (a = 0; a < 5; ++a)
{
i = 10;
if (a % 2 == 1) {
i = 0;
} else {
i = -1;
}
}
// for문이 있는 줄만 통째로 지웠을 때 → 문제 없음.
{
i = 10;
if (a % 2 == 1) {
i = 0;
} else {
i = -1;
}
}
return 0;
}
1) 장점
• 줄간격이 한눈에 들어온다.
• 수평으로 많은 코드를 작성할 수 있다.
• for문이 있는 줄만 통째로 지울 수 있다. ➜ 내가 K&R에서 BSD로 코딩 스타일을 바꾸게 된 이유이기도 하다.
2) 단점
• 코드 길이가 길어진다.