Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.96
Syltan
181 / 7 / 0
Регистрация: 27.08.2009
Сообщений: 868
#1

Прототип функции - C++

27.08.2009, 22:49. Просмотров 12532. Ответов 21
Метки нет (Все метки)

Скажите,какой смысл описывать протип функции, тоесть первую строчку функции, прописывать ещё раз вверху, перед функцией main(). Что это даёт,я так и не понял?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2009, 22:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прототип функции (C++):

Прототип функции - C++
нужно написать прототип функции, которая имеет имя f1, возвращает вещественное значение и имеет два параметра, целые числа, которые...

Прототип функции - C++
Здравствуйте я хотел спросить об прототипе функции ,а в общем для чего она нужна и как ее обозначать. Книга С.Прата Лекции и Упражнения.

Прототип функции - C++
Как правильно: void mul(int x, int y); int main() { } void mul(int x, int y) {

Прототип функции С++ - C++
Доброй ночи! помогите, пожалуйста, решить задачу с прототипом функции, вот условие: Написать функцию которая возводит указанное...

Прототип функции - C++
Пожалуйста помогите!!! Написать программу для вычисления произведения ненулевых элементов, расположенные на четных строках массива...

Прототип функции - C++
Здравствуйте) Написать программу упорядочивания элементов массивов А(50), В(50), С(50) по возрастанию, используя прототип функции. ...

21
Vourhey
Почетный модератор
6486 / 2260 / 123
Регистрация: 29.07.2006
Сообщений: 12,536
27.08.2009, 23:41 #16
Прототипом ты просто показываешь, что у тебя есть такая-то функция. Где она будет определена не суть важно. Я до вызова main указал, что show есть. Все.
0
Evg
Эксперт CАвтор FAQ
18370 / 6417 / 441
Регистрация: 30.03.2009
Сообщений: 17,803
Записей в блоге: 28
27.08.2009, 23:44 #17
Цитата Сообщение от novi4ok Посмотреть сообщение
короче: компилятор не скомпилирует обращение к фии, если не будет каким-то образом знать формат фии. он просто не сумеет это правильно сделать.
В Си в большинстве случаев будет только предупреждение. В Си++ - ошибка
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 00:06 #18
Цитата Сообщение от Vourhey Посмотреть сообщение
Прототипом ты просто показываешь, что у тебя есть такая-то функция. Где она будет определена не суть важно. Я до вызова main указал, что show есть. Все.
важно не только "есть", а еще и "какая". иначе обращение к ней невозможно скомпилировать. в принципе допускаю, что компилятор может быть многопроходным (он такой и есть), и в одном из проходов собирать только информацию о всех существующих ф-ях, и ругаться только если уже все прошли, но вот вызывается ф-я, декларация которой не была найдена в предыдущих проходах. но те несколько компиляторов, которые мне приходилось юзать, ругаются, если до момента вызова прототип не был где-то встречен.
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 00:09 #19
2novi4ok: дело не в проходах компилятора. Компилятору если нужно - он и 10 проходов сделает. Дело в том, как по стандарту должен реагировать компилятор на отсутствие прототипа. Вот как в стандарте написано - так и реагирует
0
Evg
Эксперт CАвтор FAQ
18370 / 6417 / 441
Регистрация: 30.03.2009
Сообщений: 17,803
Записей в блоге: 28
28.08.2009, 00:11 #20
Цитата Сообщение от novi4ok Посмотреть сообщение
но те несколько компиляторов, которые мне приходилось юзать, ругаются, если до момента вызова прототип не был где-то встречен.
А ты попробуй компиляторы Си, а не Си++ - картина будет несколько другая. Как odip верно подметил - эте не прихоть компилятора, а стандарт языка
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.08.2009, 00:30 #21
Цитата Сообщение от Evg Посмотреть сообщение
А ты попробуй компиляторы Си, а не Си++ - картина будет несколько другая. Как odip верно подметил - эте не прихоть компилятора, а стандарт языка
попробовал. действительно. и даже что-то интересное компилятор скомпилировал, не смотря на то, что список аргументов умышленно сделал сильно отличающимся. интересно посмотреть, как он это все устроил, но нет времени и лень. и спать нада. и не нравится мне это.
0
IpHuman
14 / 14 / 1
Регистрация: 28.01.2015
Сообщений: 26
14.03.2016, 15:15 #22
Прототип нужен для описания интерфейса функции для компилятора. Что б компилятор мог корректно обрабатывать возвращаемое значение(его тип), компилятор проверяет правильное количество аргументов и правильность их типов, если есть неподходящий тип, он его преобразует в правильный когда это возможно. Прототипирование также называют статическим контролем типов что обнаруживает многие ошибки, которые трудно перехватить во время выполнения.
Вот простой пример нахождения квадрата числа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
int square(int x);
int main()
{
    using namespace std;
    cout << "Enter the number: ";
    int num;
    while (cin >> num)
    {
       cout << "Square of number: " << square(num) << endl;
       cout << "Enter next number: " << endl;
    }
    cout << "Bad input." << endl;
    return 0;
}
int square(int x)
{
    return x * x;
}
2
14.03.2016, 15:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2016, 15:15
Привет! Вот еще темы с ответами:

прототип функции - C++
сделал стандуртную программу нахождения max в массиве с помощью фунцкции... а как переделать программу чтобы перед главной фунцией,...

Прототип функции - C++
Всем салют! Помогите пожалуйста с прототипом функции, очень прошу всех-сильно затрудняюсь в написании... Условие: Написать программу...

Прототип функции - C++
Записать прототип функции, которая осуществляет перевод десятичного числа в двоичную систему. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

прототип функции - C++
Использовать прототип функции То есть заголовок перед функцией main, а описание функции в теле функции main немогу с аргументами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.