Appel d'une fonction

cs_anisj1m Messages postés 92 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 22 janvier 2009 - 22 janv. 2009 à 11:42
cs_anisj1m Messages postés 92 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 22 janvier 2009 - 22 janv. 2009 à 16:00
Bonjour;

je suis un développeur java et je vais utiliser une bibliothèque écrite en c, puisque je ne suis pas expert en C, j'ai trouvé certaines ambiguïtés dans le fichier.c.

la fonction que je vais utiliser et décrit comme suit:
int prog(
//Entrées
int a,
int b,
int d,
//Sorties
int k,
int l,
);

et en plus il est indiqué quelle retourne  0 si l'opération a réussi et 1 sinon.
donc comment je pourrai récupérer les valeur de sorties k et l?

merci d'avance

4 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
22 janv. 2009 à 12:03
Bonjour,

Vu le prototypage de ta fonction, k et l ne sont pas des sorties et tu ne pourras rien récupérer si la fonction les modifie.

Pour récupérer ces valeurs il faudrait cette déclaration :

int prog(int a,int b,int d,int *k,int *l);

et cet appel (en C) :

int ret = prog(a,b,d,&k,&l);

ed73 
0
cs_anisj1m Messages postés 92 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 12:08
merci beaucoup ed73, oui c'est le cas comme tu as dis,

alors si je vais faire
int ret = prog(a,b,d,&k,&l);

donc en ret j'aurai 0 ou 1et pour k et l comment je peux avoir leur contenu?
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
22 janv. 2009 à 13:52
Il n'y a rien de particulier à faire, étant donné que tu passes k et l par adresse, si prog() les modifie alors tu auras leurs valeurs à la sortie de la fonction.

Il faut quand même réaliser correctement l'appel depuis Java, soit avec JNI soit avec JNA (plus simple).
0
cs_anisj1m Messages postés 92 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 16:00
géniale cela ed73,
mais mon probleme est comment pourrai-je récupérer ces valeur (k et l)

car en java je vais faire une chose de sorte

int a = prog(2,5,4,??,???)
les ?? ces pour les variable k et l comment je peux les récupérer
0