Рубрики

Какова цель прототипа функции?

Прототип функции служит для следующих целей —

1) Он сообщает тип возвращаемых данных, которые будет возвращать функция.
2) Сообщает количество аргументов, переданных функции.
3) Он сообщает типы данных каждого из переданных аргументов.
4) Также он сообщает порядок, в котором аргументы передаются функции.

Следовательно, по сути, прототип функции задает чередование ввода / вывода для функции, т.е. что дать функции и что ожидать от функции.

Прототип функции также называется сигнатурой функции.

Что делать, если не указан прототип функции?
Вывод программ, представленных ниже, обычно запрашивается во многих местах.

int main()

{

   foo();

   getchar();

   return 0;

}

void foo()

{

   printf("foo called");

}

Если не указан прототип функции, поведение зависит от стандарта C (C90 или C99), который реализуют компиляторы. В соответствии со стандартом C90 компиляторы C принимали тип возвращаемого прототипа опущенной функции как int. И это предположение на стороне компилятора может привести к неопределенному поведению программы.

Позднее стандарт C99 указывал, что компиляторы больше не могут принимать возвращаемый тип как int. Следовательно, C99 стал более ограниченным в проверке типов прототипа функции. Но чтобы сделать стандарт C99 обратно совместимым, на практике компиляторы выдают предупреждение о том, что тип возвращаемого значения предполагается как int. Но они продолжают сборку. Таким образом, программисты обязаны убедиться, что предполагаемый прототип функции и фактический тип функции совпадают.

Чтобы избежать всей этой специфики реализации стандартов C, лучше всего иметь прототип функции.

Рекомендуемые посты:

Какова цель прототипа функции?

0.00 (0%) 0 votes