Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
из племени тумба-юбма
2467 / 1790 / 417
Регистрация: 29.11.2015
Сообщений: 8,693
Записей в блоге: 15
1

Непонятно различие создания функций

04.11.2019, 17:49. Показов 1096. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Несколько непонятно многообразие вариантов создания функций, например можно создать так:
C
1
2
3
4
5
6
int oper() 
{
.
.
return ();
}
а можно создать без int, или char:
C
1
2
3
4
5
6
oper() 
{
.
.
return ();
}
единственное что понятно:
C
1
2
3
4
5
6
void oper() 
{
.
.
return (); // команда не имеет смысла
}
это значит нельзя передать значения обратно.
Ну писали ли бы просто универсальный вариант №2, к чему такие усложнения, не могу понять? Поэтому объясните пожалуйста к чему такие варианты и сложности? Приведение примеров в объяснении приветствуется.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2019, 17:49
Ответы с готовыми решениями:

Различие функций setlocale() и SetConsoleCP()/SetConsoleOutputCP()
Вопрос состоит в следующем... Можно проверить с помощью функций GetACP(), GetOEMCP(),...

Теорема о дифференциале композиции функций (непонятно доказательство)
Здравствуйте. Объясните, пожалуйста, почему он может делать замену f(x + h) = y + t. На чем это...

Программа для создания графиков функций
Построить графики функций.

Создания цикла for внутри логических функций
Уважаемые форумчане, возможно ли на языке С++ создавать циклы внутри логических функций? В данной...

7
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
04.11.2019, 18:04 2
Лучший ответ Сообщение было отмечено мама Стифлера как решение

Решение

мама Стифлера, функцию ничего не возвращающую, компилятор Си считает, как возвращающую int.
В С++ требуется указывать всегда явно.

Добавлено через 2 минуты
Универсальным методом является, как раз, первый вариант. Когда указывается, что будет возвращаться.
А возвращаться может все, что угоно.

Добавлено через 2 минуты
Это требуется для контроля компилятора корректности текста функции. Т.е. обещал компилятору, что вернешь char, вот и верни char, а не что-то другое.
0
из племени тумба-юбма
2467 / 1790 / 417
Регистрация: 29.11.2015
Сообщений: 8,693
Записей в блоге: 15
04.11.2019, 18:08  [ТС] 3
Цитата Сообщение от liv Посмотреть сообщение
функцию ничего не возвращающую, компилятор Си считает, как возвращающую int
вот тут не совсем понял, я например изначально создал функцию именно void oper(). В данном случае, при возвращении значения return (), мне компилятор написал, что такая функция не может ничего вернуть. Тогда я написал int oper() и компилятор нормально это принял. Почему же тогда так?
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
04.11.2019, 18:11 4
Под этим "функцию ничего не возвращающую" я имел в виду в тексте, т.е.
C
1
2
3
4
5
6
oper() 
{
.
.
return ();
}
Добавлено через 1 минуту
А void - да, говорит о том, что функция реально ничего не возвращает
0
из племени тумба-юбма
2467 / 1790 / 417
Регистрация: 29.11.2015
Сообщений: 8,693
Записей в блоге: 15
04.11.2019, 18:13  [ТС] 5
liv, понял тогда, спасибо

Добавлено через 1 минуту
Короче получется первые 2 варианта идентичны для компилятора, но правильнее писать вариант 1.
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
04.11.2019, 18:16 6
мама Стифлера, совершенно верно. Тем более, в С++ второй вариант вообще недопустим.
Лучше сразу привыкать писать правильно
1
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
05.11.2019, 13:08 7
Цитата Сообщение от мама Стифлера Посмотреть сообщение
а можно создать без int, или char:
В C++ это недопустимо.
Это можно было лишь в древних версиях языка C.
В подобном объявлении неявно "ставился" int.
Но и в C уже давно нет такого правила, поэтому это ошибка и в C.
Цитата Сообщение от мама Стифлера Посмотреть сообщение
return ();
Что Вы хотели этим сказать? Такой синтаксис ошибочен.
0
из племени тумба-юбма
2467 / 1790 / 417
Регистрация: 29.11.2015
Сообщений: 8,693
Записей в блоге: 15
05.11.2019, 13:12  [ТС] 8
Croessmah, ну да, пустого быть не должно, ошибся
0
05.11.2019, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2019, 13:12
Помогаю со студенческими работами здесь

Сформировать, используя механизм создания пользовательских функций
Помогите пожалуйста написать програмки по заданию: 3. Выполнив сообразно полученному варианту...

Подскажите названия функций для создания плагина
Сделал простой и полезный плагин для джумлы. Теперь хочу сделать аналог для водпресса. Подскажите...

Средство для автоматизированного создания прототипов функций из dll
есть dll, к примеру kernel32.dll, как известно можно просмотреть список экспортируемых ей функций и...

Разработать программу создания динамического массива с использованием функций
Разработать программу создания массива с использованием функций Элементы матрицы заполняются...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru