[users-fr] Passer des arguments par référence à une fonction écrite en scilab.

Calixte DENIZET calixte.denizet at scilab-enterprises.com
Lun 4 Juin 14:54:40 CEST 2012


Bonjour,

A ma connaissance, ce n'est pas possible de le faire pour des macros. 
Toutefois cela est possible avec des fonctions built-in, il suffit pour 
cela d'ecrire une toolbox en C/C++ et d'utiliser la commande scilab intppty.

Calixte

On 01/06/2012 22:56, Binoyte wrote:
> Bonjour,
>
> je voudrais savoir si il est possible de passer les arguments par 
> référence a une fonction écrite en Scilab. En gros je cherche une 
> analogie à l'écriture C++ suivante :
>
> void ma_fonction(struct & parametre)
> {
>
>     parametre.propriete = ....;
>
> }
>
>
> En Scilab je ne trouve pas trop d'autres solutions que d'écrire :
>
> function  this = ma_fonction (parametre)
>
>     this = parametre;
>     this.propriete = .....
>
> endfunction
>
>
> Le problème c'est qu'avec la version Scilab on fait d'abord une copie 
> de la variable, ça prend du temps et beaucoup de ressources. D'autant 
> qu'ensuite, dans mon programme, les fonctions sont appelées de 
> nombreuses fois vue que je lance par la suite des fonctions 
> d’optimisation. J'utilise des structures qui décrivent les composants 
> mécaniques d'un système. L’optimisation peut faire varier le nombre de 
> composants. Dans ce cas je ne pense pas pouvoir utiliser les variables 
> globales, en tout cas, pas selon l'exemple ci- après :
>
> function  ma_fonction (parametre)
>
>     global parametre;
>
>     parametre.propriete = .....
>
> endfunction
>
> //************
>
> global Monsieur;
> Monsieur.Age = 31;
>
> ma_fonction(Monsieur);
>
> Je vous remercie par avance de vos conseils.
>
> Cordialement,
>

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20120604/4016543b/attachment.htm>


Plus d'informations sur la liste de diffusion users-fr