69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
struct date {
char month[15];
char abbreviation[4];
int days;
int month_num;
};
extern struct date years[12];
A.cpp:
#include "head.h"
struct date years[12] =
{
{"January","Jan",31,1},
{"February","Feb",28,2},
{"March","Mar",31,3},
{"April","Apr",30,4},
{"May","May",31,5},
{"June","Jun",30,6},
{"July","Jul",31,7},
{"August","Aug",31,8},
{"September","Sep",30,9},
{"October","Oct",31,10},
{"November","Nov",30,11},
{"December","Dec",31,12}
};
B.cpp:
#include "head.h"
int main(void)
{
int i;
puts("Enter month you want\"1-12\"(non digital to quit)");
while (scanf("%d", &i) == 1)
{
int k = 0;
while (getchar() != '\n')
continue;
for (int m = 0; m < i; m++)
k += years[m].days;
printf("%d days\n", k);
puts("Enter month you want\"1-12\"(non digital to quit)");
}
system("pause");
return 0;
}
extern用法是正确的,不能有重复定义,你没有弄错,但是,文件2并不知道文件1的结构,所以,他知道years是结构数组,但他并不知道这个结构是什么样子的