C语言 - 复制两种不同的结构类型

Joã*_*ues 1 c struct copy

有没有办法复制两种不同的结构类型,具有相似的内容,而不是通过变量复制变量?

例如,读取文件,保存pessoa并复制到xpessoa假设email'not defined'.

struct pessoa {
    char nome[50];
    char telefone[20];
    struct{
    int dia,mes,ano;
    }data_nasc;
};

struct xpessoa {
    char nome[50];
    char telefone[20];
    struct{
    int dia,mes,ano;
    }data_nasc;
    char email[50];
};
Run Code Online (Sandbox Code Playgroud)

das*_*ght 6

这是保证工作的一种方法是嵌入pessoaxpessoa,像这样的:

struct xpessoa {
    pessoa p;
    char email[50];
};
Run Code Online (Sandbox Code Playgroud)

pessoa更改布局的情况下,此方法可保护您的代码免受未定义的行为,因为xpessoa不再镜像其布局.