具有此:
#include <stdio.h>
#include <stdlib.h>
int do_op(int (*op)(int,int),int a, int b){ return op(a,b); }
/*int do_op(int (op)(int,int),int a,int b){return op(a,b);} */
int add(int a, int b){ return a+b; }
int mul(int a, int b){ return a*b; }
int main(){
printf("add:%i;mul:%i\n",do_op(add,5,10),do_op(mul,5,10));
}
到目前为止,我对函数指针的了解是,它们的“类型”是返回值的类型。 (不知道它是如何在气体中实现的,返回值是在%rax
之前的ret
中?只是一个细节),但是当不必引用该函数时,引用该函数有什么意义呢?完全没有?它是not指针是什么意思? (例如(op)
),那么value使用的功能(不是地址)吗?但是函数通常不具有value,它仅在%rbi
中具有起始地址,完成后将通过ret
重新回到上级函数,因此在c中,这是什么意思?指针”不是pointer吗? (请举一些例子)
问题与代码中的注释有关,其中(op)
部分不是指针,但仍然可以使用。那是不是指针?
函数指针的类型不是其返回类型。它是指向的函数的类型。
到目前为止,我对函数指针的了解是,它们的“类型”是返回值的类型。
到目前为止,我对函数指针的了解是,它们的“类型”是 返回值的类型。
函数指针与数据指针的不同之处在于,它们指向代码而不是数据。因此,指针的[[value