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

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

21.10.2021, 14:45. Показов 1630. Ответов 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
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 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
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,214
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 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога Если у вас не установлены Emscripten SDK и CMake, то установите их по следующей инструкции и выполните "hello world" инструкцию там же: Установка Emscripten SDK (emsdk) и CMake . . .
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru