but when i compile it on Dev C it gives 24..whats the reason ? On Fri, Dec 7, 2012 at 7:19 AM, Don <dondod...@gmail.com> wrote:
> The actual size is system dependent because the language doesn't > specify the size of int or long int. > I'll assuming the common convention that sizeof(int)=4 and sizeof(long > int)=8. > The size of a union is the size of the largest element in the union. > So sizeof(D) = 5*sizeof(int)=20 > C and B will be the same, because there is nothing bigger in any of > them. > sizeof(A) will be 40 which is the size of an array of eight long ints. > Don > > > On Dec 7, 5:42 am, zerobyzero <narayan.shiv...@gmail.com> wrote: > > what will be the size of union A ,B,C and D. also please explain the > logic. > > > > * union A{* > > * long int y[5];* > > * union B{* > > * double g;* > > * union C{* > > * int k;* > > * union D{* > > * char ch;* > > * int x[5];* > > * }s;* > > * }a;* > > * }b;* > > * }*p;* > > -- > > > -- Shiv Narayan Sharma Jt. Secretary CSI-DTU +919971228389 www.jugadengg.com --