函数指针指向__attribute __((const))函数?

R..*_*R.. 10 c gcc types function-pointers

如何(在GCC /"GNU C"中)声明一个指向函数的函数指针__attribute__((const))?我的想法是,我希望编译器在可以缓存前一次调用的返回值时,避免生成对通过函数指针调用的函数的多次调用.

jus*_*tin 6

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)