Ich habe eine Struktur, die einen Funktionszeiger, wie dies geschieht:Wie erstelle ich eine C-Factory-Funktion?
typedef int (*node_transition_func)(wint_t);
typedef struct lex_dfa_arc_t {
node_transition_func func;
int expected_return_val;
struct lex_dfa_node_t * node;
} LEX_DFA_ARC_T;
Und nun möchte ich eine Funktion erstellen, die eine Funktion des Prototyps gibt „int func (wint_c);“ Zum Beispiel:
node_transition_func input_equals(wint_t input, wint_t desired) { ... }
Ist es in C möglich, die oben genannte Funktion tatsächlich zu haben? Ich versuche zu vermeiden, eine Funktion für jeden Buchstaben zu definieren (z. B. input_equals_letter_a, input_equals_letter_b, input_equals_letter_c usw.).
Mein anderer Ansatz wäre, nur die node_transition_func in einem wint_t und einem wchar_t * der gewünschten Zeichen zu nehmen, aber ich war neugierig, ob meine erste Annäherung funktionieren würde.
Danke!
Mir war der Begriff Currying bis jetzt nicht bewusst, und ich fand diesen Thread, der eine Menge darüber erklärt: http://stackoverflow.com/questions/1023261/is-there-a-way-to -do-currying-in-c – Scott