不能使用嵌套结构内的并集元素作为scanf()的参数来存储所需的值

问题描述 投票:0回答:1

我有一个问题,要使用带有工会元素的scanf作为参数,而高级工会是嵌套结构的一部分。

#include <stdio.h>
int main()
{
    typedef union { float chair; int bed; } HABITATION;
    typedef struct { HABITATION room; int number; } HOUSE;

    scanf("%d",&HOUSE.room.bed);
}

来自编译器的错误消息是:“错误:) >> ROOF <

我做错了什么?

INFO:我目前使用C,但是我也对相同的操作和对C ++的回答感兴趣。

c++ c nested scanf union
1个回答
0
投票

我不了解C,但是在C ++中,您的代码应等效于:

#include <stdio.h>

union HABITATION { float chair; int bed; };
struct HOUSE { HABITATION room; int number; };

int main()
{
    scanf("%d",&HOUSE.room.bed);
}

也许现在很明显,您仅定义了两种类型,但是从未在此代码中创建任何实例。 HOUSE是类型而不是实例。

© www.soinside.com 2019 - 2024. All rights reserved.