引数をとらない関数を1つの関数に連結する方法を教えてください。 JavaScriptでは、私はこれだろう:Cで2つの関数をC言語で1つに連結する
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();
を、これは私が持っているものです。
#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