Biology, asked by Siddeish, 11 months ago

difference between the following packing and padding tissue​

Answers

Answered by sugandh27
3

Answer:

Padding aligns structure members to "natural" address boundaries - say, int members would have offsets, which are mod(4) == 0 on 32-bit platform. Padding is on by default. It inserts the following "gaps" into your first structure:

struct mystruct_A {

char a;

char gap_0[3]; /* inserted by compiler: for alignment of b */

int b;

char c;

char gap_1[3]; /* -"-: for alignment of the whole struct in an array */

} x;

Packing, on the other hand prevents compiler from doing padding - this has to be explicitly requested - under GCC it's __attribute__((__packed__)), so the following:

struct __attribute__((__packed__)) mystruct_A {

char a;

int b;

char c;

};

would produce structure of size 6 on a 32-bit architecture.

A note though - unaligned memory access is slower on architectures that allow it (like x86 and amd64), and is explicitly prohibited on strict alignment architectures like SPARC.

Answered by mundaranjeet88
0

Answer:

upper one is correct

Explanation:

hope it's help you

Similar questions