Sterk versimpelt voorbeeld:
Ik wil een pointer naar "add" waarvan het 2e argument al vooraf is ingevuld met data uit een variable. Omdat ik niet helemaal weet hoe dit in C zou werken, hierbij een werkend voorbeeld in Javascript:
Ik heb gezocht, maar ik kom voornamelijk op voorbeelden van pointers naar functions; ik wil soort-van "pre-bound variablen" hebben, maar ik weet niet precies hoe ik erop moet zoeken. Is wat ik wil mogelijk in C? Zo ja, hoe?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| void add(int *a, int b) {
(*a) += b;
}
void manipulate_with_function(int *a, void (*fn)(int *a)) {
(*fn)(*a);
}
int main(int argc, char **argv) {
int target_number = 2;
int number_to_add = 3;
void (*manipulation_function)(int *) = add(..., number_to_add)
manipulate_with_function(&i, add);
printf("%i\n", i); // => 5
} |
Ik wil een pointer naar "add" waarvan het 2e argument al vooraf is ingevuld met data uit een variable. Omdat ik niet helemaal weet hoe dit in C zou werken, hierbij een werkend voorbeeld in Javascript:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function add(pointer, b) {
pointer.number += b;
}
function manipulateWithFunction(pointer, fn) {
fn(pointer);
}
function main(pointer) {
var targetNumberPointer = { number: 2 };
var numberToAdd = 3;
var manipulationFunction = function(pointer) { add(pointer, numberToAdd) }
manipulateWithFunction(targetNumberPointer, manipulationFunction);
console.log(targetNumberPointer.number);
}
main(); |
Ik heb gezocht, maar ik kom voornamelijk op voorbeelden van pointers naar functions; ik wil soort-van "pre-bound variablen" hebben, maar ik weet niet precies hoe ik erop moet zoeken. Is wat ik wil mogelijk in C? Zo ja, hoe?
Let op: Mijn post bevat meningen, aannames of onwaarheden