область объявления функции - PullRequest
0 голосов
/ 24 сентября 2011

Большинство людей, кажется, объявляют функции вне блока кода, использующего их, следующим образом:

void doSomething();

void doStuff()
{
    doSomething();
}

Мне интересно, считается ли это хорошей привычкой делать вместо этого вот так:

void doStuff()
{
    void doSomething();

    doSomething();
}

Второй метод имеет меньшую область применения и обычно считается хорошим стилем, но почему его почти никто не использует? Есть ли недостатки?

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Если doSomething () используется только в этом c-файле, он должен быть объявлен как static.

static void doSomething();

Хорошей практикой является объявление всех прототипов статических функций в начале файла вместов середине строки кода в вашем примере.

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

1 голос
/ 24 сентября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...