Bonjour,

je souhaiterai traduire cette macro C++ en Java :
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
#define compab_mask_inc(ptr,shift)
	{
	value |= ((unsigned int)(cntr - *ptr) & 0x80000000)>> (31-shift) ;
	ptr++ ;
	}

ptr est un pointeur vers une position dans un tableau de int.
shift est un entier.
cntr est un entier utilisé dans la fonction qui appelle la macro.

Est ce que ma traduction en java est juste ?
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void compab_mask_inc(int[] tab, int ptr, int shift, int cntr)
	{
 	int value |= ((cntr - tab[ptr]) & 0x80000000) >> (31-shift) ;
	}
...
ptr++ ;

En sachant que je fais le ptr++ dans la méthode appelante.


Question annexe : J'ai également ce morceau de code dont j'aimerai une précision :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
for (i=0 ; i < n ; i++)  ... sizeof(i)
Je l'ai programmé rapidement et ça retourne systématiquement 4 quelque soit la valeur de 'i'.
Quel est l'intérêt du développeur d'avoir utilisé une telle instruction qui renvoie une constante ?

Merci par avance