Подтвердить что ты не робот

Поместить имя параметров в прототипы функции C?

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

     void foo(int, char);

Мой вопрос: есть ли хорошая практика включать имена параметров?

4b9b3361

Ответ 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;
}

суб >

Ответ 2

Я определенно рекомендую включать имена параметров. Если вы пишете библиотеку, это, безусловно, полезно для тех, кто будет использовать вашу библиотеку, чтобы узнать, что делает функция из своего прототипа в ваших заголовочных файлах. Рассмотрим, например, memcpy. Без названий параметров вы потеряете информацию о том, что является источником, а какой целью. Наконец, проще включать имена, чем удалять их, когда вы копируете свое определение функции, чтобы превратить его в прототип. Если вы сохраняете имена, вам нужно добавить точку с запятой в конце.

Ответ 3

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