Beispiel: Taschenrechner
Completion requirements
Das folgende Beispiel zeigt, wie Callback-Funktionen verwendet werden können.
#include <stdio.h>
#include <stdlib.h>
typedef double (*CalculateFn_t)(double, double);
void usage()
{
printf("calculator <VAL1> <OP> <VAL2>\n");
printf(" VAL1/VAL2 : floating point number\n");
printf(" OP : one of + - * /\n");
}
double add(double a, double b)
{
return a + b;
}
double subtract(double a, double b)
{
return a - b;
}
double multiply(double a, double b)
{
return a * b;
}
double divide(double a, double b)
{
return a / b;
}
int main(int argc, char *argv[])
{
if (argc != 4) {
usage();
return 0;
}
double a = atof(argv[1]);
double b = atof(argv[3]);
char op = argv[2][0];
CalculateFn_t calculateFn;
switch(op)
{
case '+':
calculateFn = &add;
break;
case '-':
calculateFn = &subtract;
break;
case '*':
calculateFn = &multiply;
break;
case '/':
calculateFn = ÷
break;
default:
printf("ERROR: input invalid\n");
return EXIT_FAILURE;
}
double res = calculateFn(a, b);
printf("%f\n", res);
return 0;
}
Last modified: Friday, 1 June 2018, 12:42 PM