#include <stdio.h>
void intMaOp(void *lhs, int rhs) {
*(int *)lhs *= rhs;
}
void *sideEffect(void *input, void (*maOp)(void *, int)) {
maOp(input, 2); // *(int *)input *= 2;
return input;
}
int score99() {
return 99;
}
int score() {
int someValue = score99();
return *(int *)sideEffect(&someValue, intMaOp);
}
int main() {
printf("score: %d\n", score
()); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgaW50TWFPcCh2b2lkICpsaHMsIGludCByaHMpIHsKICAqKGludCAqKWxocyAqPSByaHM7Cn0KCnZvaWQgKnNpZGVFZmZlY3Qodm9pZCAqaW5wdXQsIHZvaWQgKCptYU9wKSh2b2lkICosIGludCkpIHsKICBwcmludGYoInNpZGVFZmZlY3RcbiIpOwogIG1hT3AoaW5wdXQsIDIpOyAgLy8gKihpbnQgKilpbnB1dCAqPSAyOwogIHJldHVybiBpbnB1dDsKfQoKaW50IHNjb3JlOTkoKSB7CiAgcmV0dXJuIDk5Owp9CgppbnQgc2NvcmUoKSB7CiAgaW50IHNvbWVWYWx1ZSA9IHNjb3JlOTkoKTsKICByZXR1cm4gKihpbnQgKilzaWRlRWZmZWN0KCZzb21lVmFsdWUsIGludE1hT3ApOwp9CgppbnQgbWFpbigpIHsKICBwcmludGYoInNjb3JlOiAlZFxuIiwgc2NvcmUoKSk7CiAgcmV0dXJuIDA7Cn0=