Ответ 1
Да, он считал, что хорошая практика должна указывать аргументы даже в прототипах.
Обычно у вас есть все ваши прототипы в файле заголовка, и заголовок может быть единственным, что ваши пользователи когда-либо проверяют. Поэтому наличие значимых имен аргументов - это первый уровень документации для вашего API.
Аналогично, комментарии о том, что делают функции (а не как они реализованы, конечно), должны идти в заголовке вместе с их прототипами.
Хорошо написанный заголовочный файл может быть самой важной частью вашей библиотеки!
Как любопытная сторона, констатация аргументов является детализацией реализации. Поэтому, если вы не изменяете переменную аргумента в своей реализации, добавьте только const
в реализацию:
/* Header file */
/* Computes a thingamajig with given base
* in the given number of steps.
* Returns half the thingamajig, or -1 on error.
*/
int super_compute(int base, int steps);
/* implementation file */
#include "theheader.h"
int super_compute(const int base, int steps)
{
int b = 2 * base;
while (--steps) { b /= 8; } /* no need for a local variable :-) */
return -1;
}
суб >