在C语言中,虽然没有直接支持匿名函数的语法,但可以通过函数指针和递归调用来模拟实现匿名函数的递归调用。
以下是一个示例代码:
#include <stdio.h>
typedef int (*FuncPtr)(int);
int factorial(int n, FuncPtr self) {
if (n <= 1) {
return 1;
} else {
return n * self(n - 1, self);
}
}
int main() {
FuncPtr func = factorial;
int result = func(5, func);
printf("Factorial of 5 is: %d\n", result);
return 0;
}
在上面的代码中,定义了一个函数指针FuncPtr
,用来指向递归调用的匿名函数。然后定义了一个阶乘函数factorial
,该函数接受一个整数n
和一个函数指针self
作为参数,实现了阶乘的递归计算。在main
函数中,创建了一个函数指针func
指向factorial
函数,并调用func
来计算阶乘值。
通过这种方式,可以实现在C语言中模拟匿名函数的递归调用。