티스토리 뷰
728x90
변수정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자
변수 정의를 늦출수 있게 된것은 C++의 어디에서건 변수를 선언 할수 있게 만들어 줌으로써 생겨난 방법일것이다.
가장 큰 이유는 변수의 생성 대입 초기화 라는 작업이 일어날 필요가 없게 될 경우가 생기기 때문이다.
예를 들어서, 아주 큰 객체를 생성하여 대입하고 하고, 특정 함수를 작업하고, 다시 선언된 큰 객체를 사용하고 날려 버리는 작업이 있다고 했을때,
특정 함수에서 오류가 나서 이 객체를 쓰지도 못하게 되었다고 한다면 이해가 쉽게 갈것이다
예제 1
1
2
3
4
5
6
7
8
9
10
11
12
|
void main()
{
string encrypted;
if(password.lengh() < MinimumPasswordLength)
{
throw logic_error("Password is too short");
}
// TODO
return encrypted;
}
|
cs |
이렇게 되었을때 예외가 발생하면 encryted 객체는 생성할 필요조차 없게 된것이다.
다른 최적화 방법은 없는가?
제어문안에 선언된 변수에 대해서 생각해 볼수도 있다.
제어문안에 넣을때, 가독성은 높아지지만, 반대로 제어문이 돌때 계속 연산되어진다는 점이 있고,
제어문밖에 놓는다고 했을때는 이 반대이다.
각 상황에 맞게 판단하여 사용하는게 좋을듯 싶다.
결론
변수 정의는 늦출 수 있을 때까지 늦추자.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 울릉도
- 오블완
- 스쿠버다이빙
- script
- C#
- Linux
- 티스토리챌린지
- 패턴
- 외돌개
- C# 고급 기술
- 스쿠버 다이빙
- Build
- Windows
- DLL
- 블루버블
- OpenSource
- 제주도
- C
- 서귀포
- 서귀포블루버블
- 현포다이브
- C++
- 성산블루버블
- C#.NET
- CMake
- 블루버블다이빙팀
- 네트워크 정보
- PowerShell
- 암호화
- 블루버블다이브팀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함
250x250