Фигурные скобки

Фигурные скобки

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

if (fox) {

        dog();

        cat();

}

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

if (fox) {

        ant();

        pig();

} else {

        dog();

        cat();

}

или следующим образом.

do {

        dog();

        cat();

} while (fox);

Для функций это правило не действует, потому что внутри одной функции тело другой функции описывать нельзя.

unsigned long func (void)

{

       /* ... */

}

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

if (foo)

bar();

Логика всего этого базируется на K&R[96].