Spec-Zone.ru › C

Атрибут C: noreturn, _Noreturn (с C23)

Указывает, что функция не возвращает значение.

Синтаксис

[[ noreturn ]]
[[ __noreturn__ ]]
[[ _Noreturn ]]
[[ ___Noreturn__ ]]
(устарело)

Объяснение

Указывает, что функция не возвращает значение.

Этот атрибут применяется к имени функции и указывает, что функция не возвращает значение ни по оператору return, ни дойдя до конца тела функции (она может вернуть значение, выполнив longjmp). Поведение неопределенно, если функция с этим атрибутом фактически возвращает значение. Рекомендуется диагностика компилятора, если это можно обнаружить.

Ранее он обозначался ключевым словом _Noreturn, пока не устарел с C23 и не был заменён этим атрибутом.

Стандартная библиотека

Следующие стандартные функции объявлены с атрибутом noreturn (раньше они объявлялись с _Noreturn спецификатором до C23):

  • abort()
  • exit()
  • _Exit()
  • quick_exit()
  • thrd_exit()
  • longjmp()

См. также

Документация C по _Noreturn
Документация C++ по [[noreturn]]

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/attributes/noreturn

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API