Redefinition d'un opérateur
Bonjour bonjour,
j'ai un petit bout de code qui ressemble a ca :
Code:
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:
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:
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:
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 :mouarf:
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 :aie:
Merci d'avance