12.27总结

来源:互联网 发布:网络直播吃饭 编辑:程序博客网 时间:2024/06/05 05:43

  我一直都听一些网上的编程高手说过,编程的时候不要使用全局变量,不使用全局变量会使你的程序的移植性提高,会减少程序间的耦合。当然也会导致代码量变大,这是一个矛盾。就像要使程序最高效,开发的时候就该使用汇编语言,但汇编语言的开发效率太低,要提高开发效率就该使用高级语言,但使用了高级语言,程序就没使用汇编语言高效,只能具体问题具体分析。

  我看了朱兆祺的一篇文章,是介绍如何避免全局变量的。那个程序的功能是使一个int字节转化为4个字节的char字节,他使用free函数释放内存。当然那篇文章我有点疑问,算了,以后再说吧。

  液晶lcd的原理,里面有duty就是占空比,也就是COM数,bias就是偏压,dutybias有相互关系。

  Const int *p这个是指向常量的指针,指针的值可以改变,指针指向的值你不能通过指针改变,但不一定要把常量地址赋给指针。nt const * p这个是指针本身是常量,指针的值不能改变,可以通过指针改变指针指向的值。前面那个主要是在函数传参数的时候用,代表这个函数中不会改变传过来的地址里面的值。好像高手都喜欢这么用。如果函数的参数是指针,那么传过来的参数也应该是指针。数组名传过来是地址,也就是指针,但arr[10]可不是指针,这是值,这次我就是把这个当成指针传了,闹大了。

  还有这次我写RTC驱动,我看了原子的代码,当中有错误,同时还引发了我关于年,月,日,时,分,秒的思考。我在想当我们说2015/12/27,19:56:32的时候,究竟这个点过去了吗?还有2015年,12月,27号,都代表我们处在当中没有过完,我在想是不是可以用已经过完来表示时间,同样这个时间,这么表示2014/11/26,18:55:32,一开始我错误的认为年月日的表示是正在过,而时分秒的表示是已经过完,后来发现不是,他们都是正在过,但秒是点不可以拆分。但使用全部过完表示不太好理解,所以这个方案没有被人们采纳,而且我问的是此刻的时间,你就该告诉我,此刻我正处在哪一年,哪一月,哪一天,哪一分,哪一秒,而不应该告诉我哪年,哪月,哪天,哪时,哪分,哪秒已经过完了,然后我再推我正在哪一年,哪一月,哪一天,哪一分,哪一秒。所以我们的时间表示就是采用段和点的方式,段是指你正处在哪一年,哪一月,哪一天,哪一分,点是指你在哪秒,因为秒不可分,所以秒才是点,你要是以ms为点,那秒就可以拆分了。而且月和天,跟时分秒还有点不同的是,他们是从1开始的,而时分秒是从0开始的,这就导致它们在计算的时候不同,比如要计算总秒数,天的值就要减1,而时不用(这并不代表时就是用的已经过完来表示的,实际上时也是进行中的,但因为时是从0开始的,时减去0等于它自己,这也是一开始 时 能给我 已经过去了的错觉的原因)。所以现实中有很多东西简约的我们已经忘了它的根基了。

  还有c#中,可以把对象的值赋给接口和抽象类变量,这时接口变量和抽象类变量就可以调用成员了,实现函数了。当然接口的函数究竟如何执行,还要看赋给它的对象中是如何实现的。接口和抽象类都不能初始化。比如火车类和汽车类的对象,和谐号与大众汽车都能实现载人功能(carry_man函数),所以他们都支持接口carryman,现在定义了一个carryman的变量carryman_1,然后把大众汽车赋给carryman_1,现在carryman_1.carry_man就是调用汽车类中定义的carry_man函数,而不是火车类或其他类中的carry_man函数。同样,如果把和谐号赋给carryman1变量,carryman_1.carry_man就是调用火车类中定义的carry_man函数。

0 0
原创粉丝点击