Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 04.02.2021
Сообщений: 22

Обязателен ли return в функциях типа void? Нужен ли он в нерекурсивных функциях?

21.10.2021, 14:45. Показов 1659. Ответов 6
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код в STM32 CUBEIDE. Изначально разработчик не писал строчку return, но меня учили что она обязательна. Есть ли разница в данном случае?

Мой код:

C
1
2
3
4
5
6
7
8
void DigitalWrite(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState){
  if (PinState != 0){
    GPIOx -> BSRR = GPIO_Pin;
  }else{
    GPIOx -> BSRR = (uint32_t)GPIO_Pin << 16u;
  }
  return;
}
Код разработчика:

C
1
2
3
4
5
6
7
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState){
  if (PinState != 0){
    GPIOx -> BSRR = GPIO_Pin;
  }else{
    GPIOx -> BSRR = (uint32_t)GPIO_Pin << 16u;
  }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2021, 14:45
Ответы с готовыми решениями:

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

Void аргументация в функциях и указатели
интернета не было 2 дня, решил изучать изучать СИ. начал изучать на уже настроенной IDE (до этого)по книге &quot;Heard first C&quot;, ...

Правильно ли я делаю, используя везде return 0 в функциях double, которые работают с массивами?
задача: в массиве а и b все числа до макс. значения заменить на 0.5, при этом используя функции вот код: #include...

6
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
21.10.2021, 15:00
Цитата Сообщение от mateuskomputeus Посмотреть сообщение
Есть ли разница в данном случае?
Нет
1
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
21.10.2021, 15:02
Цитата Сообщение от mateuskomputeus Посмотреть сообщение
но меня учили что она обязательна
Возможно, тебя учили что она обязательна в main() , которая не void, а int. Тем не менее для main() сделано исключение (Стандарт или для чего нужен return 0 ?), а вот для остальных функций - нет.
1
1 / 1 / 0
Регистрация: 04.02.2021
Сообщений: 22
21.10.2021, 15:12  [ТС]
Спасибо! Нет, меня учили что любая функция void должна оканчиваться на return.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
21.10.2021, 17:36
mateuskomputeus, бывает, что необходим выход до конца функции (например, по некоторому условию). Вот тогда return точно необходим. В конце же функции return подразумевается.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12943 / 6810 / 1821
Регистрация: 18.10.2014
Сообщений: 17,234
21.10.2021, 18:43
Цитата Сообщение от mateuskomputeus Посмотреть сообщение
но меня учили что она обязательна.
Это чушь. return не обязателен в void функциях, а также в функции main (несмотря на то, что она int)

Цитата Сообщение от mateuskomputeus Посмотреть сообщение
Есть ли разница в данном случае?
Нет.

Цитата Сообщение от mateuskomputeus Посмотреть сообщение
меня учили что любая функция void должна оканчиваться на return
Это чье-то стилистическое персональное предпочтение, которое вам попытались навязать со словом "должна". То есть вас просто ввели в заблуждение. Пустой return на конце функции режет глаз.

Также
Изображения
 
2
1 / 1 / 0
Регистрация: 04.02.2021
Сообщений: 22
23.10.2021, 18:34  [ТС]
Спасибо!
ахахах, ну мне приятнее смотреть на:

C
1
2
3
void f(){
 
}
чем на:

C
1
2
3
4
void f()
{
 
}
На вкус и цвет товарища нет)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2021, 18:34
Помогаю со студенческими работами здесь

Enum в функциях - нужен пример
дайте пример как использовать переменную с множеством функций, например есть функция int mt_setcolors(enum colors) как и где описывать...

System.Void из C# использоваться не может - для получения объекта типа void используйте typeof (void)
Изучаю с# по &quot;Шилдт Г. - C# 4.0 полное руководство&quot; При изучении конструктора возникла проблема: попытался запустить код на стр. 169, а...

this в функциях
Столкнулся с такой вещью - вот такой код: a={ b : function() { function c() { alert(this) } c() } } a.b()

О функциях
Например в Паскале я могу передать аргумент просто(создается копия которая не имеет отношения к передоваемой переменной) или по...

@ В функциях
Здраствуйте, у меня во время изучения такой темы как создание модулей возник вопрос. Я не знаю как создать такую конструкцию с @ как в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru