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