Consider the following two type definitions in C: typedef struct { char w; float x; short int y; float z; } a; typedef struct { char w; a x; double y; short int z; } b; How much memory does a value of type a occupy? How much memory does a value of type b occupy? Rearrange the data fields of types a and b so that each type uses as little space as possible. Show the resulting modified definitions of types a and b. How much space do values of type a or b use now? (If your solution is correct, you should see some moderate space savings for type a and significant savings for type b.) Argue that it is impossible to obtain a different ordering of the fields of types a and b that uses even less space than the one you came up with, at least not in C.
Consider the following two type definitions in C:
typedef struct { char w; float x; short int y; float z; } a; typedef struct { char w; a x; double y; short int z; } b;
-
How much memory does a value of type a occupy? How much memory does a value of type b occupy?
-
Rearrange the data fields of types a and b so that each type uses as little space as possible. Show the resulting modified definitions of types a and b. How much space do values of type a or b use now? (If your solution is correct, you should see some moderate space savings for type a and significant savings for type b.)
-
Argue that it is impossible to obtain a different ordering of the fields of types a and b that uses even less space than the one you came up with, at least not in C.
Step by step
Solved in 3 steps