Consider the following union declaration: 1 union ele struct long *p; long y; e1
ID: 3783926 • Letter: C
Question
Consider the following union declaration: 1 union ele struct long *p; long y; e1 struct long x; union ele *next; e2 10 This declaration illustrates that structures can be embedded within unions. The following procedure (with some expressions omitted) operates on a linked list having these unions as list elements: void proc (union ele up) up A. What are the offsets (in bytes) of the following fields: e1.p el.y e2.x e2.next B. How many total bytes would the structure require? C. The compiler generates the following assembly code for the body of procExplanation / Answer
A. e1.p==> 4 Byte Because p is a pointer which will store a value of long data type
e1.y==> 4 Bytes Because y is of long data type.
e2.x==> 4 Bytes because x is of long data type
e2.next==> 4 Bytes next is a pointer variable which will hold the address hence 4 bytes.
B. Structure requires total of 8 Bytes here in the given program. Because 4 bytes ale allocated to x and next with 4 bytes each. It will take 8 byte for structure to hold.