I was told that when I do something like

Code:
#include <stdio.h>

 typedef struct{
   int fd;
   char d;
 }DIR;


 /*DIR *opendir(char *getname);*/

 int main(void) {
   return 0;
 }
that typedefing the struct declares a new data type. I thought a data type and variable where the same thing. Apparently they aren't. What exactly is the difference between the two then?

Chad