声明结构体类型

偶然发现代码里面有个未定一个结构体类型,形式如下: struct vas;

而在当前文件中又实现了其定义。

一开始不理解其意义,看完代码发现了其作用:

因为另一个包含了它的结构体的定义代码放在了struct vas定义的前面,前面的struct vas是为了告诉编译器,这个struct vas是定义了的,后面是其真正定义。

#include <stdio.h>


struct vas;

struct devs{
    struct vas vaa;
    char* name;
    int v;
};

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

int main()
{
    struct vas va = { 11 , "ocean"};
    
    printf("age = %d , name : %s
 ", va.age, va.name);
    
    return 0;
}
原文地址:https://www.cnblogs.com/mylinux/p/4775744.html