컴파일러는 로컬 변수를 최적화 할 때 로컬 변수의 순서를 재정렬합니다. 즉, 같은 범위에있는 변수의 순서는 중요하지 않습니다.
void func() {
//int i, j; // not here!
for (int i = 0 ; i<10; ++i) {
int j = func2(i);
...
}
// i and j below are different variables than i and j above
// you can consider changing their names if they also have different meaning
for (int i = 0 ; i<10; ++i) {
int j = func3(i);
...
}
}
비록 가능성이 성능이나 메모리 풋 프린트 점에서 중요하지 않습니다 좋은 최적화 컴파일러에 대해 : 좋은 생각,하지만 무엇
는 예를 들어, 사용되는 범위에 지역 변수를 선언하는 것입니다 보기 (변수가 어쨌든 사용되는 경우이를 감지합니다). 그것은 여전히 코드를 더 읽기 좋게 만들 것이고, 서로 다른 범위에서 무관 한 값을 섞어 버리는 것을 피할 것이다. 그래서 컴파일러 경고에 잡히지 않는 어리석은 버그를 막을 것이다. 왜냐하면 컴파일러는 실수로 재사용 변수의 초기화를 잊어 버렸을 때, 새로운 변수를 초기화하는 것을 잊어 버리면 알 수 있습니다).
또한, 중요한 것은 변수 (또는 무엇이든)에 대한 걱정 : GCC에 대한 -Wall -Wextra
같은 컴파일러 경고를 켜해야합니다. 또한 valgrind을 사용하는 것이 좋습니다 (valgrind가있는 OS에서 코드를 실행할 수있는 경우).
무엇이 당신의 질문입니까? 예를 들어 코드가 있습니까? –
대개는 중요하지 않습니다. –
"정렬"에 관해 읽을 시간. – sharptooth