ssume that the machine has 1-byte characters, 4-byte integers, 8-byte single-precision floating numbers, 16-byte double-precision floating numbers, and 8-byte pointers. assume that the compiler does not reorder the fields, and it leaves no holes in the memory layout. a) how many bytes does each union declared in the code and struct s occupy? b) if the memory address of s starts from 1984, what are the start addresses of s.info.next and s.student.name? c) if the compiler has a simple memory alignment mechanism that will make the variables 4-byte aligned(i.e. the compiler will add padding between the struct members and make the memory address of each vari- able in struct multiple of 4 bytes), what will be the size of s?