Zerosquare (./12) :
Je pense que ce que tu cherches à obtenir est fondamentalement impossible à faire proprement en C...
Disons que le compilo Microsoft permet de jouer un peu :
http://msdn.microsoft.com/en-us/library/83ythb65(VS.80).aspx (regarde à la fin)
Zerosquare (./12) :
(et ne parlons même pas du problème de l'endianness)
Peut être en demandant à FLC ? Naaaan, la private joke de fou, j'abuse trop là

Disons c'est dans ce cas précis qu'on se rend finalement compte de la supériorité du little endian sur le big endian ! J'explique :
typedef struct{
int nCount;
short nMode;
sHue sColor;
char* pTest; // 4 ou 8 octets suivant l'architechture
char aData[10];
}sStack,*psStack;
Imagine qu'on accède donc à la
struct avec un
((psStack)buff)->pTest bien senti, mais que
pTest à été casté sur un
__int64 (genre avec un
__declspec(align(8)) ou tout autre option de compilation). Suivant l'endianesse sur une machine 32 bits (on cherche pas en 64 bits, forcément) où se situe REELEMENT le pointeur ? En little endian à
pTest, en big endian à
pTest+4 ! Du coup pour éviter les casting et les prises de tête inutiles, le little endian offre bien une supériorité à commencer par l'octet de poid faible se situant toujours à la même adresse...
Kochise