本文介绍了初始化 typedef 结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么这样做:

struct person {
    char name[50];
    short mental_age;
} p1 = {"Donald", 4};

但不是这个:

typedef struct {
    char name[50];
    short mental_age;
} PERSON p1 = {"Donald", 4};

有没有办法在定义这个结构时创建一个 typedef 结构并初始化 Donald?

Is there a way that I can make a typedef struct and initialize Donald when I define this struct?

推荐答案

typedef 是其他类型的别名.您正在做的是创建一个方便的typedef.由于typedef 的目的是创建type 别名,因此您不能使用它定义变量.

typedefs are aliases for other types. What you're doing is creating a convenience typedef. Since the purpose of a typedef is to create type aliases, you can't define a variable using it.

你必须这样做:

typedef struct {
    // data
} mytype;

mytype mydata = {"Donald", 4};

这篇关于初始化 typedef 结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 21:15