1) В каких случаях лучше использовать параметры по умолчанию ( или какая польза от таких параметров ) ?
2) Приведите пож. пример кода программы где используются параметры по умолчанию с подробными коментариями (чтоб было объявление и определени функции с параметрами по умолчанию и в коментариях такая же функция с такими же параметрами, но не по умолчанию, ЧТОБ Я ВИДЕЛ РАЗНИЦУ как выглядит объявление и определение с обычными параметрами и с параметрами по умолчанию )
3) Иногда в конце тела функции отсутствует оператор выхода ( return ) или этот оператот с нулём ( это одно и тоже? это тоже вопрос ) Как в таких ситуациях осуществляется выход из фенкции?
Заранее благодарю. За лучший и полный ответ 50 баллов.
Другие языки программирования и технологии
Вопросы про функции. За лучший и полный ответ 50 баллов
Параметры по умолчанию используются тогда, когда ряд параметров функции либо не используется вообще, либо есть некоторое значение, которое будет использоваться обычно. Примеры на С:
/*предположим, что есть еще функция int processMess1( char *mess, int par1, int par2), которая делает тоже самое*/
int processMess( char *mess, int par1, int par2=0)
{
int res = 0;/*все в порядке*/
switch (par1) {
case 1: /*делаем что-то и до параметра par2 нам нет дела*/ break;
case 2: /*используем параметр par2*/ break;
default: /*не используем par2*/ break;
}
return res;
}
/*используем данную функцию без аргументов*/
void *myfunc1( int len, )
{
char *mystr;
if ( len == 0) return (NULL);/*что еще можно вернуть для выхода из этой функции в произвольном месте*/
mystr = alloc( len, sizeof(char));
if ( mystr == NULL ) return (NULL);
processMess(mystr, 3);/*Обратите внимание не нужен еще один аргумент*/
//processMess1(mystr, 3, 0);
processMess(mystr, 3, 2);/*меняем значение по умолчанию*/
return (mystr);
}
Более того, если вдруг значение параметра по умолчанию изменится, то легко можно будет заменить его в месте объявления функции, а не везде по тексту. Имел дело с применением в функции протокола электросчетчика, так там 4 параметра, а для большинства команд играют роль один или два, так параметры присвоены по умолчанию и дают возможность не писать бессмысленных значений. Эта функция развивалась, изначально у нее было меньше аргументов, дав им значения по умолчанию стало возможно не дописывать новых аргументов в тех местах вызова где в этих аргументах нет нужды.
Итак итоги:
- Аргументы по умолчанию нужны если: без данного аргумента можно обойтись вовсе или если заранее известно его основное значение (как например printf("") == fprintf(stdout,"")).
-Выход из функции происходит либо, по достижении последней строки, либо при вызове return(наличие данного оператора подразумевается, то есть с точки зрения компилятора перед закрывающей скобкой функции стоит return (NULL)). Return позволяет: уменьшить уровень вложенности, ставя выход с кодом ошибки при не совпадении условия, организовать возврат разнотипных значений, завершить функцию при ошибке (скажем не были переданы корректные аргументы или недоступен ресурс,..) .
-return 0, обыкновенно означает нормальное завершение функции, прочие значения - коды ошибки, если конечно же это значение не есть основная задача функция, как например labs(), sin(), cos(),...При завершении функций потоков хорошо использовать EXIT_SUCCESS для нормального завершения и EXIT_FAILURE для выхода с ошибкой.
/*предположим, что есть еще функция int processMess1( char *mess, int par1, int par2), которая делает тоже самое*/
int processMess( char *mess, int par1, int par2=0)
{
int res = 0;/*все в порядке*/
switch (par1) {
case 1: /*делаем что-то и до параметра par2 нам нет дела*/ break;
case 2: /*используем параметр par2*/ break;
default: /*не используем par2*/ break;
}
return res;
}
/*используем данную функцию без аргументов*/
void *myfunc1( int len, )
{
char *mystr;
if ( len == 0) return (NULL);/*что еще можно вернуть для выхода из этой функции в произвольном месте*/
mystr = alloc( len, sizeof(char));
if ( mystr == NULL ) return (NULL);
processMess(mystr, 3);/*Обратите внимание не нужен еще один аргумент*/
//processMess1(mystr, 3, 0);
processMess(mystr, 3, 2);/*меняем значение по умолчанию*/
return (mystr);
}
Более того, если вдруг значение параметра по умолчанию изменится, то легко можно будет заменить его в месте объявления функции, а не везде по тексту. Имел дело с применением в функции протокола электросчетчика, так там 4 параметра, а для большинства команд играют роль один или два, так параметры присвоены по умолчанию и дают возможность не писать бессмысленных значений. Эта функция развивалась, изначально у нее было меньше аргументов, дав им значения по умолчанию стало возможно не дописывать новых аргументов в тех местах вызова где в этих аргументах нет нужды.
Итак итоги:
- Аргументы по умолчанию нужны если: без данного аргумента можно обойтись вовсе или если заранее известно его основное значение (как например printf("") == fprintf(stdout,"")).
-Выход из функции происходит либо, по достижении последней строки, либо при вызове return(наличие данного оператора подразумевается, то есть с точки зрения компилятора перед закрывающей скобкой функции стоит return (NULL)). Return позволяет: уменьшить уровень вложенности, ставя выход с кодом ошибки при не совпадении условия, организовать возврат разнотипных значений, завершить функцию при ошибке (скажем не были переданы корректные аргументы или недоступен ресурс,..) .
-return 0, обыкновенно означает нормальное завершение функции, прочие значения - коды ошибки, если конечно же это значение не есть основная задача функция, как например labs(), sin(), cos(),...При завершении функций потоков хорошо использовать EXIT_SUCCESS для нормального завершения и EXIT_FAILURE для выхода с ошибкой.
друг сходи лучше на пхп орг
там есть форум и подробное описание всех функций, здесь одна школота
которая непоможет тебе а только посмееться над тобой
так как сами незнают что ответить
там есть форум и подробное описание всех функций, здесь одна школота
которая непоможет тебе а только посмееться над тобой
так как сами незнают что ответить
как 50 баллов
параметры по умолчанию обычно встречаються в программах которые посвящены параметрам по умолчанию, эти программы используються в случаях когда надо умолчать или когда нечего сказать.
Похожие вопросы
- Несколько вопросов про синтаксиз С++ .За отличный и полный ответ 50 баллов.
- Функции в С++ .50 ОЧКОВ за лучший и полный ответ.
- Помогите за правильный ответ даю 50 баллов
- Вопрос про функции (с++)
- C++. Вопрос по функции memmove()
- Лентяи задают тут вопросы, зачем вы даете полные ответы? Нужно помогать, а не давать готовые решения. Или я не прав?
- что такое adb?(за лучший ответ 10 баллов)
- Вопрос по функции rand srand c++
- Для чего служит операция xor в ассемблере. Буду очень признательна за полный ответ или ссылку.
- Два года бьюсь над этим вопросом, но он все еще оставлен без ответа.