Understanding how C struct aliases are compiled

Viewed 76

I am trying to understand how structure aliases get compiled into a binary, especially when there is a modifier in front of it. I notice that having an alias both with and without a * result in different binaries (checked using shasum). For example, given the following structure:

typedef struct __foobar {
    int a;
    int b;
} *pfoobar_t, foobar_t;

how are the following variable declarations different from the C standard and a compiler perspective:

const pfoobar_t my_var;
const foobar_t *my_var;
foobar_t const *my_var;

Thank you in advance.

2 Answers
Related