Spec-Zone.ru › GCC 14

6.46 Функции 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-14.2.0/gcc/Const-and-Volatile-Functions.html

Spec-Zone.ru

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