qq_34731182
哈哈coding
2016-06-10 15:41
采纳率: 60%
浏览 1.3k
已结题

C语言结构体成员定义求助大神!!

int main()
{
struct Line
{
char start;
char end;
char L;
char R;
};
struct point
{
Line l1;
Line l2;
Line l3;
int k;
};
我想把Line类型中的成员定义成point类型,怎么实现呢???

  • 点赞
  • 收藏

4条回答 默认 最新

  • qq423399099
    小灸舞 2016-06-11 01:46
    已采纳

    使用前置声明,并且在Line里使用point的指针类型

     #include<stdio.h>
    
    struct point;
    struct Line
    {
        char start;
        char end;
        char L;
        char R;
        point *p1;
    };
    struct point
    {
        Line l1;
        Line l2;
        Line l3;
        int k;
    };
    
    void main()
    {
    
    }
    
    点赞 评论
  • caozhy

    C语言要求先申明后使用,所以你可以加上一行
    struct point;

    点赞 评论
  • Teng_yun
    阴到笑 2016-06-10 17:08

    在Line结构体前面声明point,再在Line结构体中,声明point*类型的,不能用point类型,否则会出错。

    点赞 评论
  • wzxq123
    尚书左仆射 2016-06-11 00:56

    前置声明point结构体,再在Line中使用。当编译到Line结构体时编译器没有足够的信息知道piont结构体的大小,所以只能用point的指针类型。

    点赞 评论

相关推荐