Я рассматриваю нашу базу кода Visual C ++ и вижу множество вспомогательных функций с очень короткими телами.Например, это:
inline int max( int a, int b ) { return a > b ? a : b; }
проблема в том, что когда отладчик кода отлаживается, невозможно сразу увидеть, что такое a
и b
при входе в функцию с помощью F11 («шаг в»)).Просто нажмите F11, и указатель «текущей строки» указывает на строку с открывающей фигурной скобкой, затем после F10 («шаг за шагом») управление выходит из функции.Это не очень удобно.
Альтернативой было бы переписать все эти функции так, чтобы полезная нагрузка тела занимала отдельную строку:
inline int max( int a, int b )
{
return a > b ? a : b;
}
теперь, когда нажата клавиша F11, указатель "текущей строки"указывает на открывающую скобку, затем после того, как управление F10 переходит на полезную нагрузку, и можно увидеть, что имеют значения a
и b
.Если кому-то все равно, и он только что вошел в эту функцию во время вычисления какого-либо сложного выражения, он может нажать Shift-F11 и выйти из функции - но он мог бы сделать это и в первом случае, так что никаких серьезных отрицательных моментов нет.изменения в опыте отладки.
Есть ли недостатки в таком преобразовании кода?Какие-либо причины держать тело функции в одной строке с сигнатурой функции?