2013-07-02 2 views
0

У меня довольно много опыта программирования, но за годы постоянного написания функций я просто хотел знать мнение сообщества по этому вопросу.Лучшее место для объявления переменных в функции

Под функцией лучше всего объявить все переменные в самом начале или объявить их, когда вы идете?

Так, например:

void fake_function1() { 
    int i; 
    //do something here with variable i 

    int counter; 
    //do something here with variable counter 

} 

or 

void fake_function2() { 
    int i; 
    int counter; 

    //do something here with variable i 
    //do something here with variable counter 

} 

В настоящее время я, как правило, обычно делают такие вещи, как в fake_function2(), так что кажется более правильным, но некоторые другие времена, я хотел бы сделать такие вещи, как в fake_function1(), так как выглядит более читаемым и читаемым кодом, всегда лучшим кодом, особенно когда код может работать на 100k строк, по моему мнению. Я думаю, что последовательность очень важна, но мне сложно решить, что лучше.

+0

Возможный дубликат [Объявлять локальные переменные как можно позже или в ближайшей фигурной скобке они принадлежат?] (Http://stackoverflow.com/q/10204828/1503018) – sectus

ответ

0

Общее правило для большинства руководств по практике кодирования, которые я видел (я только читал несколько), заключается в том, чтобы объявить их как можно ближе к местоположению первого использования и инициализировать их, если они aren 'построено по умолчанию. Это значительно снижает вероятность их случайного использования без первоначального инициализации, уменьшая вероятность ошибок, без какого-либо увеличения кода или любого удара по производительности.

Сказанное, я хотел бы поставить местные константы в начале функции.

0

Я понимаю и согласен с вашими точками и с вашим чувством, что второй стиль кажется более правильным.

Несмотря на то, что автор кода может сначала свести свои мысли к стилю первой функции, он помогает как другим, так и впоследствии автору (когда они вернутся для поддержания своего кода), если переменные объявляются, как только начинается их область действия, которая для JavaScript находится в верхней части функции, а для других языков - в начале блока. Это может показаться громоздким, но если число переменных получает , так что громоздко, то, возможно, функции или блоки сами должны быть сокращены, так же как хорошие авторы склонны писать длинные предложения, но даже лучшие авторы обычно осваивают искусство сокращения предложений снова опуститесь.

Хорошо заметьте: независимо от того, какой стиль используется, хорошо писать код, в котором каждая переменная существует только до тех пор, пока это необходимо.

2

Правило большого пальца, который действительно работает для меня, это:

Декларация инициализации

Это означает, что даже высказывания типа int i; следует избегать в пользу int i = 0;.

Приведение кода, который декларируется вместе с кодом, который обрабатывает переменную, действительно заслуживает только ремонтопригодности.

Также обратите внимание, что объявление переменных в верхней части является практикой, которая может возникнуть из-за того, что C не разрешил mixed code and declarations.

Смежные вопросы