R..*_*R.. 10 c gcc types function-pointers
如何(在GCC /"GNU C"中)声明一个指向函数的函数指针__attribute__((const))?我的想法是,我希望编译器在可以缓存前一次调用的返回值时,避免生成对通过函数指针调用的函数的多次调用.
typedef void (*t_const_function)(void) __attribute__((const));
static __attribute__((const)) void A(void) {
}
static void B(void) {
}
int main(int argc, const char* argv[]) {
t_const_function a = A;
// warning: initialization makes qualified
// function pointer from unqualified:
t_const_function b = B;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要不就:
__attribute__((const)) void(*a)(void) = A;
Run Code Online (Sandbox Code Playgroud)