Можете определять функции точно так же, как в языке С++. Эти определения являются прототипами функций.
double square(double d)
{
return d*d;
}
void ff()
{
double x = square(2); /* OK: переводим 2 в 2.0 и вызываем */
double y = square(); /* пропущен аргумент */
double y = square("Hello"); /* ошибка: неправильный тип
аргументов */
double y = square(2,3); /* ошибка: слишком много аргументов */
}
Также вам может показаться, что такая тема как http://prokormim.ru/shop/dogs/ никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт prokormim.ru
Тема корм для собак там представлена весьма широко.
Определение функции без аргументов не является прототипом функции.
void f() { / * что-то делает */ }
void g()
{
f(2); /* OK в языке C; ошибка в языке C++ */
}
Код
void f(); /* не указан тип аргумента */
означающий, что функция f() может принять любое количество аргументов любого типа, выглядит действительно странно. В ответ на это я изобрел новое обозначение, в котором понятие “ничего” указывалось явным образом с помощью ключевого слова void (void — слово из четырех букв, означающее “ничего”).
void f(void); /* не принимает никаких аргументов */
Впрочем, вскоре я об этом пожалел, потому что эта конструкция выглядит странно и при последовательной проверке типов аргументов является излишней. Что еще хуже, Деннис Ритчи (автор языка C) и Дуг Мак-Илрой (Doug McIlroy) (законодатель мод в Исследовательском центре компьютерных наук в компании Bell Labs (Bell Labs Computer Science Research Center; см. раздел 22.2.5) назвали это решение “отвратительным”. К сожалению, оно стало очень популярным среди программистов, работающих на языке С. Тем не менее не используйте его в программах на языке С++, в которых оно выглядит не только уродливо, но и является совершенно излишним.
\-7[ В языке C есть альтернативное определение функции в стиле языка Algol-60, в котором типы параметров (не обязательно) указываются отдельно от их имен. int old_style(p,b,x) char* p; char b;
{
/* */
} ’ ’ ’
Это определение “в старом стиле” предвосхищает конструкции языка С++ и не является прототипом. По умолчанию аргумент без объявленного типа считается аргументов типа int. Итак, параметр x является аргументом функции old_style(), имеющим тип int. Мы можем вызвать функцию old_style() следующим образом:
old_style(); /* OK: пропущены все аргументы */
old_style("hello", 'a', 17); /* OK: все аргументы имеют правильный тип */ old_style(12, 13, 14); /* OK: 12 — неправильный тип */
/* но old_style() может не использовать p */
Компилятор должен пропустить эти вызовы (но мы надеемся, что он предупредит о первом и третьем аргументах).
Мы рекомендуем придерживаться следующих правил проверки типов аргументов функций.
• Последовательно используйте прототипы функций (используйте заголовочные файлы).
• Установите уровень предупреждений компилятора так, чтобы перехватывать ошибки, связанные с типами аргументов.
• Используйте (какую-нибудь) программу lint.
В результате вы получите код, который одновременно будет кодом на языке C++.
Опубликовал katy
April 28 2015 21:00:08 ·
0 Комментариев ·
2976 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.