如何連接(或合併)兩個沒有參數且不返回任何函數的函數?在JavaScript中,我會做這樣的:將兩個函數連接成一個在C中
function f1() {
console.log("f1 called");
}
function f2() {
console.log("f2 called");
}
function function_concat(fa, fb) {
var final = function() {
fa();
fb();
};
return final;
}
var merged = function_concat(fa, fb);
merged();
在C,這是我有:
#include <stdio.h>
#include <stdlib.h>
typedef void (*fptr)(void);
void f1() {
printf("f1 called");
}
void f2() {
printf("f2 called");
}
fptr function_concat(fa, fb) {
// What to do here??
}
int main(int argc, const char **argv) {
fptr merged = function_concat(f1, f2);
fptr();
}
我知道我必須返回一個靜態指針,但我不能定義一個函數在C函數中,如果我已經在一個函數中,很難創建新的函數。有沒有人知道一種方法來做到這一點?
在C中,不能像傳遞變量等那樣傳遞函數。 JavaScript和C支持不同的編程範例。如果你堅持這樣做,你可能不得不做更多的事情。 – ray