1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
char driver_char(void)
{
return 110;
}
double driver_double(void)
{
return 3.14;
}
bool gestion_erreur(void* code, char data_type)
{
switch(data_type)
{
case 'c':
if (* (char*)code == 110)
return false;
else
return true;
case 'd':
if (* (double*)code == 3.14)
return true;
else
return false;
default:
return false;
}
}
int main(void)
{
void * code_retour = malloc( 10 * sizeof(double) ); // bon.... 10 ce n'est surement pas necessaire pour stocker un nombre ^^
* (char*)code_retour = driver_char();
bool un = gestion_erreur(code_retour, 'c');
* (double*)code_retour = driver_double();
bool deux = gestion_erreur(code_retour, 'd');
printf("Un = %s\n"
"Deux = %s", un ? "True" : "False", deux ? "True" : "False");
return 0;
} |
Partager