Предположим, следующий код:
int f1(int x, int y);
int main(void) {
printf("%d", f1(2,3));
char* x = (char*)&f1;
//edit the stuff here?
printf("%d", f1(2,3));
return 0;
}
int f1(int x, int y){
return x*y;
}
Теперь, несмотря на то, что это действительно глупо, и вы никогда бы не практически сделали бы это, как бы вы поступили?Если бы я хотел, чтобы эта функция добавила два числа вместо вычитания или даже пошла на что-то более сложное, какие шаги я должен предпринять?Как выяснить, какой правильный машинный код нужен для получения желаемого результата?