IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Redefinition d'un opérateur


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut Redefinition d'un opérateur
    Bonjour bonjour,
    j'ai un petit bout de code qui ressemble a ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        for(i=1;i<X;i++)
        {
    	mac_(&a0, *W16_ptr_Hn--, **W16_ptr_Xn);
    
            //increment position
            (*W16_ptr_Xn)++;
    
            //Circular Xn Buffer
            if (*W16_ptr_Xn == adr_end_W16_Xn)
            (*W16_ptr_Xn) = adr_start_W16_Xn;
        }
    J'aimerais virer toute la partie en vert afin de la rendre transparente et obtenir un truc comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        for(i=1;i<X;i++)
        {
    	mac_(&a0, *W16_Hn--, **W16_Xn++);
        }
    Forcement le **W16_Xn++ est faux, et de toute facon ne represente pas l'operation, que je souhaite effectuer, dans son ensemble.
    PS : (c'est bizarre que Hn-- marche mais pas Xn++ .... les deux representent la valeur du buffer a l'adresse W16_Hn ou *W16_Xn)
    Donc j'ai pour le moment une seule solution en tete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        for(i=1;i<X;i++)
        {
    	C_mac_(&a0, *W16_Hn, **W16_Xn);
        }
    puis je code C_mac_ de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	mac_(&a0, *W16_Hn--, **W16_Xn);
            (*W16_ptr_Xn)++;
     
            //Circular Xn Buffer
            if (*W16_ptr_Xn == adr_end_W16_Xn)
            (*W16_ptr_Xn) = adr_start_W16_Xn;

    Je souhaite rendre ce process transparent pour des raisons inavouables

    Enfin bref, ma question est la suivante :
    Est-ce la seule solution ou je peux redefinir les operateurs++ pour ce cas precis. J'aimerais quelque chose de plus sexy que ma vieille solution minable

    Merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Par défaut
    tu peux peut-être faire ça a l'aide d'une macro du genre . Le surcharge d’opérateur n'existe pas en C et le define est assez porc comme solution. Honnêtement je n'en voit pas l’utilité de faire ce genre de manipulation en C.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    En effet le define ca fait un peu sale ....
    Enfin tant pis, il n'y aura pas de solution plus sexy ...
    Vais passer par une fonction intermediaire cest moche


    Merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je ne dirai rien mais dans ton autre post on t'a déjà dit que ce n'était pas la peine de faire ça..

    Comment produire du code illsibile et in-maintenable...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    Oui je sais tres bien, et j'ai explique le pourquoi du comment, perso je trouve que ca complique completement le truc ... je me prend la tete pour un truc pas tres pertinent ... mais un moment donne c'est pas moi le boss donc j'arrete de discuter je fais ...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ben fais-lui lire nos diverses interventions

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 75
    Par défaut
    Il s'en tape ....
    Enfin bref c'est hors-sujet, et de toute facon le code est fini et correspond exactement au cahier des charges ....

    Mais attention les yeux a la lecture du code ... ca pique punaise
    Meme avec plusieurs visios pour expliquer un peu ce bordel, et meme si c'est moi qui l'ai fait de A a Z ... des fois ... je me perds ...

    Enfin, merci a vous
    Plus qu'un dernier probleme a resoudre et c'est regle !!!!
    (faire appel a un compilateur externe a visual, car je vais devoir mettre de l'ASM la dedans qui correspond a des instructions d'un DSP, me faut donc utiliser le compilateur fournit avec ... ca va etre drole ca aussi je sens )

    Thanks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Binaire] Opérateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    Réponses: 3
    Dernier message: 09/11/2017, 11h29
  2. Opérateur de statistique
    Par Phil951 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 15h12
  3. Opérateur like
    Par Troopers dans le forum ASP
    Réponses: 3
    Dernier message: 15/09/2003, 19h19
  4. opérateur non applicable à ce type d'opérande
    Par Amon dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 18h07
  5. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo