Why c-faq 16.7 solution does not consider padding bytes?
===

http://c-faq.com/strangeprob/ptralign.html

In 16.7, the author explains:

    s.i32 = *(long int *)p;
    s.i16 = *(int *)p;

will get into trouble 'cause these casted pointer may not be aligned. So he uses byte wise manipulation instead for solution.

My question is:

since:

    struct mystruct {
    	char c;
    	long int i32;
    	int i16;
    } s;

will have padding bytes after 'char c;', why didn't the author skip the padding when he try to get the 'long int i32;'?

Anyone helps?

Thanks a lot!