I've seen 3 different ways to sizeof a struct in C.

```
typedef struct A {
    int a, b;
} A;

sizeof(A); // method 1

sizeof(struct A); // method 2

A *p; 
sizeof(*p); // method 3

```

Which one is the most appropriate way to do this? Consider the efficiency and readability.