<p>I have seen many programs consisting of structures like the one below</p>

<pre><code>typedef struct 
{
    int i;
    char k;
} elem;

elem user;
</code></pre>

<p>Why is it needed so often? Any specific reason or applicable area?</p>

Using a
```
typedef
```
avoids having to write
```
struct
```
every time you declare a variable of that type:
```
```
struct elem
{
 int i;
 char k;
};
elem user; // compile error!
struct elem user; // this is correct
```
```