structs

Started by
1 comment, last by HulkHogan 21 years, 5 months ago
I know that typedef helps me specify a type, Ex. typedef int integerhaha; integerhaha anotherinteger; But, how in the world does it relate to structs. Below.. typedef struct hero { int spidermanID; int batmanID; }; gave me the same result as... struct hero { int spidermanID; int batmanID; };
Advertisement
It''s a C-only thing. You don''t need to do it for C++.

The reason is that if you do this in C...

struct SomeStruct{  /* stuff */}; 


...then you''d have to refer to it in code like this:

/* declare structures */struct SomeStruct first;struct SomeStruct second; 


People are lazy, though, so this is a bother. The typedef works in the same way as with other things:

typedef /* lots of stuff...*/ my_typedef_name;

In the above code, the typedef is simply creating a new type so that you don''t need the "struct SomeStruct" part, instead allowing you to say "SomeStruct" only. It''s less typing.

However, it''s not necessary in C++. In C++, a struct is like a class except that it''s public by default. Therefore, the typedef is irrelevant - you don''t need to specify the "struct whatever" bit, since you can simply say "whatever".
That''s correct ... the only difference (unless I missed something here) is that you no longer have to use the struct keywoard when declearing or defining or casting (ie from void *) to your hearo type

This topic is closed to new replies.

Advertisement