在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語言中模擬匿名函數的遞歸調用。