错误:a的存储大小未知

时间:2014-03-11 01:10:43

标签: c struct typedef

我一直在用这段代码搜索问题,但我不知道现在该做什么。我正在用C语言中的结构做一些练习。

它旨在成为一个程序,它获取2个整数的值并添加它们并将值存储在sum中,然后打印sum

#include <stdio.h>
#include <string.h>

int main()
{
    typedef struct {
        int num;
        int num2;
        int sum;
    } calc;

    struct calc a;

    printf("Enter number: ");
    scanf("%d", &a.num);

    printf("\nEnter a number: ");
    scanf("%d", &a.num2);

    a.sum=a.num+a.num2;

    printf("Output: %d", a.sum);

    return 0;
}
  

错误:a的存储空间大小未知。

2 个答案:

答案 0 :(得分:3)

typedef struct {
    int num;
    int num2;
    int sum;
} calc;

在这里,您给的是一个同名结构calc的别名,所以没有这样的结构称为struct calc。您应该将a定义为:

calc a;

或者,您可以为您的结构添加标签:

typedef struct calc {
    int num;
    int num2;
    int sum;
} calc;

现在,您可以使用calcstruct calc

答案 1 :(得分:0)

您的结构已经typedef了,所以当您声明它时,只需使用calc代替struct calc

struct calc a;更改为calc a;