【问题标题】:What this Declaration meant in C该声明在 C 中的含义
【发布时间】:2013-02-22 09:44:33
【问题描述】:

我在 C 中有一个结构,最后有一些无法解码的声明

struct Student
{
   int roll;
   char name;
   int age;
};

extern struct Student dev[];

最后一条语句在 C 中是什么意思??

【问题讨论】:

  • 嗯,你没有C书或C参考书吗?

标签: c struct structure


【解决方案1】:
extern struct Student dev[];

告诉编译器devstruct Student 类型的数组,它在其他地方(其他翻译单元)定义。

【讨论】:

  • 所以你的意思是说 dev 的每个成员都是 struct Student 类型
  • @AmitSinghTomar:是的,dev 是一个数组。这个数组的每个元素的类型都是Student
  • 您有什么想在这里提及的用例吗?
  • @AmitSinghTomar:什么用例?
  • 在哪里声明这个开发者会有用?
【解决方案2】:

这意味着dev[] 没有在这个 C/object 文件中声明,而是在另一个文件中。您必须将该其他对象链接到您的二进制文件才能使用该变量。

【讨论】:

    【解决方案3】:
            struct students
        {
        int num;
        char name[100];
        char dept[100];
       } extern struct students student[];
    

    student[] 是结构体数组,用于访问结构体成员 比如 num,name,dept.

    int j=100;

                 #include<stdio.h>
    
                       main(){
    
                      for(i=0;i<j;i++)
                             {
                                   scanf("%d",&student[i].num);
                                   scanf("%s",student[i].name);
                                   scanf("%s",student[i].dept);
                               }
    
    
                            for(i=0;i<j;i++)
                                {
                                      printf("%d\n",student[i].num);
                                      printf("%s\n",student[i].name);
                                       printf("%s\n",student[i].dept);
         }
         }
    

    用于访问结构体成员的100条记录

    【讨论】:

      猜你喜欢
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多