15,440
社区成员
发帖
与我相关
我的任务
分享
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libtcc.h>
char ma_fonction[] =
"int soustraction(int a,int b) "
"{"
" return difference(a,b); "
"}";
int soustraire(int a, int b)
{
return a-b;
}
int main(int argc, char **argv)
{
TCCState *s;
int (*entry)(int,int);
void *mem;
int size;
s = tcc_new();
if (!s) {
fprintf(stderr, "Impossible de creer un contexte TCC\n");
exit(1);
}
tcc_add_symbol(s,"difference", soustraire);
tcc_set_output_type(s, TCC_OUTPUT_MEMORY);
if (tcc_compile_string(s, ma_fonction) != 0) {
printf("Erreur de compilation !\n");
return 1;
}
size = tcc_relocate(s, NULL);
if (size == -1)
return 1;
mem = malloc(size);
tcc_relocate(s, mem);
entry = tcc_get_symbol(s, "soustraction");
tcc_delete(s);
printf("%d \n", entry(10, 3) );
free(mem);
return 0;
}