时间:2019-08-09 13:06:02 作者:johnnyl 浏览量:41
更节省资源,更有功率的做法是:weekday 和 weekend 函数处理这份“规划书”时,直接处理 main 里的“规划书”就能够了。不要仿制后再处理,完事了还要在从自己内部传出。那,weekday 和 weekend 函数应该怎样修正呢?请看:
void weekday(struct week *wd)
{
wd->sleep_time = 7.0; // 7 小时
wd->work_time = 8.5; // 8.5 小时
}
void weekend(struct week *we)
{ we->sleep_time = 9.0; // 9 小时
we->work_time = 2.5; // 2.5 小时
}
int main()
{
struct week w;
weekday(&w);
printf(\\\"weekday,sleep time: %0.1f,work time: %0.1f \\\",w.sleep_time,w.work_time);
weekend(&w);
printf(\\\"weekend,sleep time: %0.1f,work time: %0.1f \\\",w.sleep_time,w.work_time);
return 0;
}
图三 怎样了解C言语中的指针,怎样运用
看到了没,利用指针,整个 C 代码简练多了。weekday 和 weekend 函数接收到的参数都是 main 里结构体变量 w 的地址,所以它俩都是直接操作 w 的。这样就不用在自己的栈帧里仿制一份 w 再处理了,也不用在处理完毕还要 return 给 main 了。
看到这儿,你可能会说,什么嘛,不便是用指针代替了结构体做参数吗?指针说不定比结构体还要耗空间呢!对吗?一起来看下:结构体变量 w,它占用内存至少两个 sizeof(double) 的空间(一个 double 型数据一般占用 8 字节空间)。而一个指针,不管它是什么类型的,在大多数 32 位计算机中,它只占 4 字节空间,在大多数 64 位计算机中,它也仅仅占 8 字节空间。所以运用指针做 weekday 和 weekend 函数的参数,在空间上,肯定是比直接运用 week 结构体节省空间的,况且指针还提高了功率,简练了代码。
假如是一个 char 型变量,它只占用 1 字节空间,这时运用指针的确更浪费空间。可是假如是一个十分复杂的结构体,它占用的内存空间甚至达几千字节,这时运用指针就十分节省空间了。所以说,工具是死的,人是活的。
到这儿,相信你已经了解 C 言语指针在节省空间,提高程序功率方面的作用了。事实上,这儿咱们介绍的仅仅是指针的冰山一角,在以后的文章里,你会益发觉得 C 言语指针的强壮的。