C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1127] 전역과 멤버는 대문자로 시작하고 지역은 소문자로 구성하자.
김태선 [cppbuilder] 32428 읽음    2013-02-22 11:07
#define LOAD_NUMBER  100
enum { SAVE_NUMBER = 100 };


이처럼 상수는 항상 대문자로만 구성하는 것은 많은 분들이 가지고 있는 코딩 습관입니다.
하지만 변수명이나 메소드 명에 관해서는 제각기인 것 같습니다.

저는 전역변수나 멤버 변수 및 메소드는 대문자로 시작하고
지역변수는 소문자로 구성하는데, 이는 저의 오래된 습관입니다.

	VectorCount = GetVector(); // 전역 또는 멤버
	int vector_count = GetVector(); // 지역


그런데 이 습관이 의외로 편리하더군요.
변수만 딱 봐도 지역 변수냐 아니냐가 구분되어 지니까요.
코드 가독성이 상당히 좋아집니다.

전역과 멤버는 같은 규칙을 가지고 있으니 코드만 봐서는 금방 전역인지 멤버인지
구분하기 어려운 면이 있습니다. 멤버 구분을 위해,
쓸데 없는데 시간 낭비가 가장 심한 MFC에서는 m_ prefix 접두어를 붙이고, 자바는 m 접두어를 붙이는데...
이 두가지를 다 사용해 봤는데
그냥 안 붙이는게 더 편리하더군요.
실전에는 2개의 구분이 그리 중요한 문제가 아니었기 때문이고, 궁금하면  IDE가 도와주기 때문입니다.

지역 변수를 소문자로만 구성해서 코드 가독성이 상당히 좋아지는 것에 비해선
그다지 효용성이 높진 않더군요. 그렇지만 자바 같이 m 접두어 붙이는건 고려해볼만 합니다.

물론 최근 전역변수는 절대 쓰지 말라는 바람직힌 코딩 권고안을 많은 분들이 아시고 저 역시 전역변수는 거의 쓰지 않기
때문에 변수에 관해서는 대문자로 시작하면 멤버 또는 전역 인스턴스구나 하고 그냥 알수 있습니다.
전역변수가 만일 필요하면 반드시 class나 struct로 만들어 그 안에 선언하시는 것이 좋습니다.
전역인스턴스는 사용에 무리가 없습니다.
(자바 C#은 아예 전역변수 라는거 자체가 없죠. 전역 인스턴스는 있지만. )


bool	CTaskForceTeam::IsVectorLimit()
{
	int vector_count = GetVector();
	if (vector_count >= VECTOR_LIMIT)	
		return true;
	return false;
}


이는 저의 습관이고 오랜기간 나름 유용성을 체험했기에 하는 권장일 뿐, 꼭 이렇게 하시라는 것은 아닙니다.
저 역시 이런 룰을 가지고 있지만 2% 정도의 예외도 있습니다.
가령 지역변수나 지역 인스턴스이지만 중요도가 높은건 대문자로 쓰기도 합니다.

그리고 다른 코드를 Copy&Paste한 경우는 안 고치고 대부분 그냥 씁니다.

+ -

관련 글 리스트
1127 전역과 멤버는 대문자로 시작하고 지역은 소문자로 구성하자. 김태선 32428 2013/02/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.