typedef与struct的语法错误?

时间:2014-03-30 16:57:41

标签: c struct typedef

我在下面有以下代码。

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

根据我的理解,typedef将替换" struct person"与人。所以在制作结构时,它等于写:

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

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

错误:预期标识符或'(''''令牌之前 此错误指的是以下行: Person {

感谢任何帮助。感谢

3 个答案:

答案 0 :(得分:4)

这样做

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

然后,您可以Person使用struct的所有用法

也不需要不同的大写

typedef struct person person;

也会做得很好。

答案 1 :(得分:3)

做你想做的事的一种方法是:

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

或者,如果您想在一条指令中完成此操作,您可以这样做:

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

答案 2 :(得分:0)

可能的方法如下:

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