在下面的代码中,我正在读main
中的file.rec
,并将它放在char buf
中。然后我通过这个buf
和getCallBack()
函数的函数指针,但我通过两种可用方式传递函数。这个函数通常以这两种方式接收函数指针。所以我很想知道使用与否有什么不同。在函数指针中使用“&”运算符?
#include<stdio.h>
void getCallBack(char buf[], void(*executeCallBack)(char[])){
printf("callback recived\n");
executeCallBack(buf);
}
void callBack(char buf[]){
printf("executing callback...\n");
printf("buf content: ");
printf("%s\n", buf);
}
void main() {
FILE *ReadingXmlFile = fopen("texto.rec", "r");
char buf[10000];
fread(buf, 1, 10000, ReadingXmlFile);
fclose(ReadingXmlFile);
printf("passing \"&callBack\"\n");
getCallBack(buf, &callBack);
printf("passing \"callBack\"\n");
getCallBack(buf, callBack);
//
}
一个函数自然衰减到自己的指针,类似于数组如何衰减到指向其第一个元素的指针。我建议尽可能明确地说明它,并且总是使用操作符'&'的地址。 –