2014-03-30 43 views
1

我在下面有下面的代码。使用struct的typedef语法错误?

typedef struct person Person; 
    Person { 
     char* name; 
     int age; 
    }; 

据我所知,typedef将用Person替换“struct person”。所以在制作这个结构时,就等于写了:

struct person { 
     char* name; 
     int age; 
    }; 

这个想法是否正确? 因为我得到一个错误,结构的第一行的错误。

错误:预期标识符或“(”前“{”令牌 此错误是指一行:人{

任何帮助表示赞赏感谢

+4

typedef与宏不一样;它不会像那样取代。 –

+0

好吧,如果我有“typedef结构人Person”,我怎么能做一个Person的结构? – Rohan

+0

'typedef struct person {char * name;整年龄; } Person;' – mah

回答

4

像这样做

typedef struct person Person; 
struct person { 
     char* name; 
     int age; 
}; 

然后你可以使用Person所有用途Ø f struct

也有不同的资本不需要

typedef struct person person; 

会做同样出色。做你想做什么

3

一种方法是:

struct person { 
    char* name; 
    int age; 
}; 
typedef struct person Person; 

或者,如果你想在一个指令来实现这一点,你可以这样做:

typedef struct person { 
    char* name; 
    int age; 
} Person; 
0

一种可能的方法如下:

typedef struct { 
     char* name; 
     int age; 
    } Person;