2024-01-05 06:23来源:m.sf1369.com作者:宇宇
要看你是怎样应用了。你要动态分配,那肯定是链表了。如果你要便于直接访问,那就结构体数组。
不存储在内存条上,存储在硬盘上,当需要程序运行时,程序被加载到内存条上。可以去看一下王爽的汇编语言,里面有关于这个的介绍,看目录就能找到了
这个问题太宽泛了,一般牵涉到具体硬件的问题多半需要系统的考虑。
简单的来说,flash的写入是分块的。这种情况下如果单独的改写其中的一部分需要经过读取、擦除、写入的过程,也许你可以从这方面下手。
当然后面switch语句可用更简单的办法替换。。。如果你需要
# include <stdio.h>
int main(void)
{
struct date {
int day;
int month;
int year;
} theDate;
int daysPerMonth[13] = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf(Please specify the date(mm dd YYYY): ); //输入格式: 月 日 年
scanf(%i%i%i, &theDate.month, &theDate.day, &theDate.year);
if ((theDate.year % 4 == 0 && theDate.year % 100 != 0) || theDate.year % 400 == 0)
daysPerMonth[2] = 29;
if (theDate.year < 1900 || theDate.year > 2005 || theDate.month < 1 || theDate.month > 12 ||
theDate.day < 1 || theDate.day > daysPerMonth[theDate.month]) {
printf(Sorry! bad input!\n);
return 1;
}
printf(Current month: );
switch (theDate.month) {
case 1:
printf(January);
break;
case 2:
printf(February);
break;
case 3:
printf(March);
break;
case 4:
printf(April);
break;
case 5:
printf(May);
break;
case 6:
printf(June);
break;
case 7:
printf(July);
break;
case 8:
printf(August);
break;
case 9:
printf(September);
break;
case 10:
printf(October);
break;
case 11:
printf(November);
break;
case 12:
printf(December);
break;
default:
printf( );
break;
}
printf(\nThank You!\n);
return 0;
}