Function attributes
Beginning of IBM® Extension.
Function attributes are extensions implemented to enhance the portability of programs developed with GNU C. Specifiable attributes for functions provide explicit ways to help the compiler optimize function calls and to instruct it to check more aspects of the code. Others provide additional functionality.
A function attribute is specified with the keyword __attribute__
followed
by the attribute name and any additional arguments the attribute name
requires. A function __attribute__
specification
is included in the declaration or definition of a function. The syntax
takes the following forms:
Beginning of C only.
End of C only.
Beginning of C++ only.
End of C++ only.
/* Specify the attribute on a function prototype declaration */
void f(int i, int j) __attribute__((individual_attribute_name));
void f(int i, int j) { }
Beginning of C++ only.
In C++, the attribute specification must also follow any exception declaration that may be present for the function.
End of C++ only.
Beginning of C only.
int __attribute__((individual_attribute_name)) foo(int i) { }
End of C only.
A
function attribute specification using the form __attribute_name__ (that
is, the attribute name with double underscore characters leading and
trailing) reduces the likelihood of a name conflict with a macro of
the same name.
End of IBM Extension.