201Fermer203
ZephLe 17/11/2009 à 13:34
GoldenCrystal (./199) :
La fonction que t'appelles en C, de base si tu as son pointeur, c'est que tu l'as récupérée quelque part, donc que tu connais son prototype, donc que tu peux l'appeler directement... Ou j'ai manqué un truc ? confus

Pas nécessairement, imaginons que tu as un tableau de correspondance nom<->[pointeur de fonction + nombre et types des arguments attendus]. Depuis ton petit langage interprété perso, tu parses un appel à la fonction "plip" avec deux arguments 17 et 42. Tu la cherches dans ton tableau, tu trouves une structure qui te donne le pointeur de la fonction et une indication comme quoi la fonction prend 2 entiers. À partir de là, ça pourrait être cool de pouvoir faire "push (17); push (42); call (mon_pointeur_vers_la_fonction_plip);".

L'avantage serait par exemple de ne pas avoir besoin d'un wrapper pour rendre directement disponibles des fonctions système depuis un langage de script quelconque.