hello Vic thank you for all your responses. i was just trying to use union as an alternative to that problem and hence following your response i changed the array to contain 2 elements according to the 'endian' thing., here is the code :
========== #include <stdio.h> union vals { unsigned short x; unsigned char y[2]; } myvals; int main() { myvals.y[0] = 1; //lsb myvals.y[1] = 21; //msb printf("%d", myvals.x); printf("\n %d", sizeof(myvals)); } ========== the only changed thing is uchar y[1]; is replaced by uchar y[2]; i compiled and executed the program using turbo c++ 3 and it gave the same output as it gave previously even sizeof showed out the size of myvals to be 2! i have some queries to you and others in this group please clarify them: 1. the code is successfully executing and giving satisfactory output, but is that output compiler dependant though it was using a feature of C?if so then why is it, i mean what is the difference? 2. can i in any case use unions safely for brians problem? 3. why does sizeof showed the size of myvals to be 2 bytes? again thanks for your comments and am waiting for your reply. With Regards Anup Joshi --------------------------------- Need a vacation? Get great deals to amazing places on Yahoo! Travel. [Non-text portions of this message have been removed]