Это ( отсюда ):
int cdev_add(struct cdev *, dev_t, unsigned);
Является ли функция декларацией . Он определяет тип трех параметров, которые принимает функция, и тип возвращаемого значения: в этом случае функция возвращает int
и принимает в качестве параметров a struct cdev *
, dev_t
и unsigned
. Обычно это делается в заголовочных файлах (.h
), которые позже включаются, чтобы дать компилятору знать, какие типы обрабатываются и возвращаются функцией.
Тот факт, что имена параметров отсутствуют, не означает, что параметры являются необязательными. В C нет такого понятия, как «необязательный параметр», ближайший вы можете получить через variadi c arguments (который можно использовать только в конце списка параметров), но вы Придется определять все поведение самостоятельно. Допустимое объявление функции также может указывать имена параметров, но это не обязательно.
Это ( отсюда ):
int cdev_add(struct cdev *p, dev_t dev, unsigned count)
{
// ... body skipped for simplicity ...
return 0;
}
Является ли функция определением . Он должен определять все имена параметров и тело функции, содержащие фактический код.