Spec-Zone.ru › GCC 15

6.13.5 Функции с квалификаторами const и volatile

Стандарт C явно оставляет поведение квалификаторов типа const и volatile, применённых к функциям, неопределённым; такие конструкции могут возникнуть только при использовании typedef. В качестве расширения GCC определяет такое использование квалификатора const как имеющее то же значение, что и атрибут функции GCC const, а квалификатор volatile — как эквивалентный атрибуту noreturn. Дополнительную информацию см. в разделе Общие атрибуты функций.

Примеры такого использования:

/* Equivalent to:
   void fatal () __attribute__ ((noreturn));  */
typedef void voidfn ();
volatile voidfn fatal;

/* Equivalent to:
   extern int square (int) __attribute__ ((const));  */
typedef int intfn (int);
extern const intfn square;

В целом предпочтительнее использовать вместо этого атрибуты функций, поскольку атрибуты явно указывают и назначение кода, и его зависимость от расширения GNU. Кроме того, использование const и volatile таким образом специфично для GNU C и не работает в GNU C++.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Const-and-Volatile-Functions.html

Spec-Zone.ru

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