[OT] C question (typedef & structs)

Lowell Gilbert freebsd-questions-local at be-well.ilk.org
Thu Oct 2 09:03:16 PDT 2003


Bill Moran <wmoran at potentialtech.com> writes:

> 1) What's the difference between:
> 
> struct customStruct {
>      int RecID;
>      char *Name;
> };
> 
> and
> 
> typedef struct customStruct {
>      int RecID;
>      char *Name;
> };
> 
> ??
> 
> I had the latter, but when I started moving my code into
> different files to reorganize things, gcc started giving
> me warnings.  The warnings went away when I moved to the
> former.  I can't quite figure out what the difference is.
> Is one correct and the other not?

I'm not sure whether the second is illegal or not, but in any case it
doesn't make any sense (so I can't be bothered to look it up).  In
both cases, customStruct is the *structure* tag, not a type name.

If you wanted to use a typedef, it would be more like:

 typedef struct customStruct {
      int RecID;
      char *Name;
 } customType;


> 2) I'm a self-taught C programmer.  That means that I know
>     a lot, but I often bump into things that I should know
>     (like question #1) that I don't.  Does anyone have a
>     suggestion for a mailing list that would be good for
>     asking questions like the above?  Keep in mind that
>     I'm not an amature, I'm just not formally trained, so
>     I bump into lots of areas that I'm not sure what I'm
>     doing because I haven't studied it yet ;)

If you're sticking to strictly ANSI C like this, the comp.lang.c
newsgroup is a good place to go.  More useful is its FAQ, which 
you can find at "http://www.eskimo.com/~scs/C-faq/faq.html".  There
are other newsgroups on C, including one for learners, but I don't
have the precise name at hand.

A good book might be a better bet, though.  Both Kernighan & Ritchie
and Harbison & Steele have discussions of typedefs that show how to
use them with structures.

Good luck.


More information about the freebsd-questions mailing list