C中的结构.未知的类型名称,

Use*_*492 0 c structure codeblocks

我是C语言中的新结构,但据我所知,我的代码是"正确的".我正在使用Codeblocks,但我也在DEV C++中编译它,我得到了同样的错误

#include <stdio.h>
#include <stdlib.h>

struct film{
   int year;
   char  title[30];
   char  director[30];
   char  main_char[30];
} ;


int main ()
{

    film venom={ 2018, "Venom", "Ruben Fleischer", "Tom Hardy" };

    printf("Year: %d\n", venom.year);
    printf("Title: %s\n", venom.title);
    printf("Director: %s\n", venom.director);
    printf("Main Character: %s\n", venom.main_char);

    system("PAUSE");
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我不知道有什么错误. 在此输入图像描述

mol*_*ilo 5

这是C,而不是C++,因此结构具有自己的命名空间.

你需要写struct film venom;或使用传统的typedef:

typedef struct film film;
Run Code Online (Sandbox Code Playgroud)

通常附加到结构定义本身;

typedef struct film{
   int year;
   char  title[30];
   char  director[30];
   char  main_char[30];
} film;
Run Code Online (Sandbox Code Playgroud)

  • @P__J__:C 2018 6.2.3"标识符的名称空间"表示标签名称有单独的名称空间; 结构,联合和枚举的标签; 结构或工会的成员(每个结构或工会的单独名称空间); 和所有其他标识符. (3认同)