A.2 Функции |
Предыдущая Содержание Следующая |
ANSI-C позволяет — но не требует — чтобы декларация функции содержала декларации параметров прямо в списке параметров. Если это сделано, то функция декларируется вместе с типами своих параметров. Имена параметров могут быть указаны как часть декларации функции, но это не имеет никакого отношения к именам параметров, используемых при декларации функции.
double sqrt (); классическая версия double sqrt (double); ANSI-C double sqrt (double x); ... с именами параметров int getpid (void); без параметров, ANSI-C
Если прототип функции ANSI-C был представлен, компилятор ANSI-C попытается преобразовать значения аргументов в типы, задекларированные для параметров. Определения функций могут использовать оба варианта:
double sqrt (double arg) ANSI-C { ... }
double sqrt (arg) классическая версия double arg; { ... }
Есть точные правила взаимодействия между ANSI-C и классическими прототипами и определениями; тем не менее, эти правила являются сложными и подверженными ошибкам. Лучше всего придерживаться только прототипов и определений ANSI-C. Компилятор GNU-C предупреждает о вызове функций, которые не были продекларированы, с помощью опции -Wall.
|
Предыдущая Содержание Следующая |