单片机的C语言

时间:2021-02-04 19:49:49
新手,用C写简单的单片机程序。感觉没用到比较难的C,比如指针,数组,共用体,等那些内容。难道单片机对C要求不高吗??高的还真没接触到啊
那我还有没有必要看以下这么牛逼的书。毕竟我以后从事的是偏硬的。(电子信息工程)

C专家编程 
C陷阱与缺陷
the C programming language
C Primer Plus
C++编程思想

56 个解决方案

#1


有时间就看吧.....多看些书或许没坏处的吧?

#2


谢谢2楼  
 
前辈们啊  我们是新手。希望大虾们不吝给指点啊  关注新手啊

#3


本帖最后由 lbing7 于 2009-08-26 08:41:01 编辑
那几本书都是比较基本的吧?

不看几遍都不好意思和别人说自己了解C

#4


写程序重要的是思想,不是那些语法,语法只是为了更简洁清晰地描述思想,但是数组和结构体还是很常见的吧,养成良好的习惯,同样功能的程序,功底能差很多的

#5


指针和数组都用不到?太夸张了吧?
写程序,语法是必备之物,至少也得相当了解才行。剩下的就是思路的培养了,这个周期可就不好说了。

#6


我想应该是你还没有接触到!

#7


那几本书有时间还是看一下吧。比如指针,数组,结构体等,这些都是很基础的,继续努力

#8


我也感觉单片机上用的C比较简单,但在看ARM驱动的时候,感觉好难啊 C还是要多学点的好

#9


那几本都是比较好的书籍,况且以后还要发展的!学习没有错,比如linux系统方面的,对C要求就高了!

#10


程序大一点就需要用到了
多学是没有错的,合理分配时间吧

#11


感觉C应该全通的,就算是搞硬件,再说你这么确定就是搞硬的呢?
其实我也没这么用过高深的语法..

#12


我觉得单片机程序也应该善用数据结构中的某些思想,可以提高效率
那几本书都是经典
再推荐本《c与指针》 也不错哦 呵呵

#13


我是从测试转到单片机的,做了一年多点点,还是觉得要把C用好用精,达到很高的效率是很难的。所以是还需要充电的。

#14


单片机的C很简单

#15


单片机的c,看你怎么理解了,要想用精太难了。所有的C语言知识均可用到。

#16


与你一样的迷惑。

#17


有点迷惑

#18


C一定要学好

#19


哎,我又在重新看C了

#20


书名很经典啊,全部看完没时间啊

#21


继续学C

#22


我也是学硬件,C很重要,搞嵌入式必备的~~~~

#23


给电子工程师的建议:最好不要用指针,想想为什么JAVA里面没有指针,就应该知道商用的代码健壮性稳定性是多么重要了吧。等到了客户投诉的时候,语言已经无法表达你那时的心情了。

#24


这几本书都没看过,想多研究一下编程思想,觉得自己写出来的程序只是功能代码的堆砌,杂乱无章,谁有好的书给推荐一下哈

#25


俺开始学c的时候,也觉得指针,结构、联合体什么的没什么用。但越往后,越觉得有用。后来简直是离不开了。其实不是51的c语言不需要,而是要看怎么用,什么时候用。

#26


引用 23 楼 duojinian 的回复:
给电子工程师的建议:最好不要用指针,想想为什么JAVA里面没有指针,就应该知道商用的代码健壮性稳定性是多么重要了吧。等到了客户投诉的时候,语言已经无法表达你那时的心情了。



哥们太极端了吧,C语言区别一般语言的最大优势就是指针。我相信这也是c语言能够流行至今的最大原因了吧。什么事物都有两面性。有机会探讨一下辩证法。呵呵。

#27


而且不用指针,比如mp430,凌阳之类的单片机,你怎么操作那些个寄存器?

#28


不知道怎么回答你,一般的程序指针 结构体 枚举等等确实少,大部分接触到的是数组,但是当你接触到大程序或者想进一步深入或者想写高效程序的时候 指针还是必不可少的,单片机的程序稳定是第一要素 不是用了很多指针的程序才是好程序,你的程序稳定可靠就是好程序,再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针,等你编程达到一定量你自然会明白什么时候用指针什么时候不需要

#29


但我认为不能因为使用指针容易出错就不用。这样下去,会形成习惯,很难改正的。正确使用指针,本身并不能造成程序的不稳定,不稳定是因为错误的使用造成的。因此,要多用,多试,才能熟能生巧。否则越怕出错,越不敢用,越不敢用就越不了解。那到什么时候能到达熟练掌握的程度?

#30


“再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针”

我不觉的这句和和使用指针有什么关系。难道使用指针会使语句实现更加复杂?还是说处理问题更加麻烦?

#31


引用 30 楼 zhoushunda960 的回复:
“再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针”

我不觉的这句和和使用指针有什么关系。难道使用指针会使语句实现更加复杂?还是说处理问题更加麻烦?

我不是针对指针而言,我只是说如果你用简单的语句实现了客户要求的功能,且程序稳定可靠,那何苦非要管有没有用指针 用了多少指针呢,有需要用就用,为了用指针而用指针只会自添烦恼

#32


单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结

#33


引用 32 楼 wjk864 的回复:
单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结


c语言的灵魂是什么?


而且我认为,使用c语言,必须掌握指针的使用。比如一个函数有多个返回值的情况下,不使用指针,那么该如何实现?(别告诉我使用全局变量)。
但我也不是说所有场合下使用指针就是好的,据说51中使用指针的效率就不如数组。还是要看实际的情况来定。但是用c语言,就必须正确掌握指针的使用。

#34


引用 32 楼 wjk864 的回复:
单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结 



c语言的灵魂是什么?

问错了。
我的意思是c是通过什么操作硬件的?不是还是指针么。

#35


问题是单片机资源相对嵌入式来说是很少的,用不到指针什么。
我也是电信工的。

#36


操作硬件是指针但是其中编译器完成了很多工作,因为数组本质上也是指针,我说的是函数指针等等不是非要的东西,我是强调能达到目的就好 程序可靠稳定就好,等编到一定程度,考虑的事情多了自然会在走不通的时候去考虑指针,你是一直在强调指针多重要多重要,完全是两码事啊 我并没有否认指针的重要性,能掌握当然是好,但是我觉得纯单片机的程序方面指针确实用的不多

#37


C只是一个工具而已,编程重要的是思想。有了思想怎么体现出来呢?就是要用C这种语言完成。这就很明显了,熟悉它了,就可以随心所欲的用它来实现思想,否则还得想想具体的语言怎么用。

对于初学者,谭浩强的很好,但肯定不够。所以不仿先把谭的内容搞熟了,然后再看《the C programming language》之类的书。

#38


我觉得咱们两个跑题了。也许是我错误理解了你的意思。有机会私下聊吧,呵呵。

#39


引用 35 楼 elvistsai 的回复:
问题是单片机资源相对嵌入式来说是很少的,用不到指针什么。
我也是电信工的。


使用指针并不会带来太大的资源消耗啊,千万别有这样的误区。

#40


 我也来学习学习

#41


wo ye lai xuexi

#42


每次有這種問題都很熱閙 可用一本書名評價

傲慢與偏見

搞技術的人都比較偏激 所以這也是難免的 不過別把樓主的問題晾在一邊了

我認為這幾本書 都要看 因為你還在觀望是不是搞硬件 一般觀望的人最後都沒有搞硬件
硬件是要看基礎的  你還在觀望就說明還沒有決心搞硬件

所以趕快抓時間學c語言吧 免得畢業時候就後悔自己c不精了 似我:-)

#43


引用 29 楼 zhoushunda960 的回复:
但我认为不能因为使用指针容易出错就不用。这样下去,会形成习惯,很难改正的。正确使用指针,本身并不能造成程序的不稳定,不稳定是因为错误的使用造成的。因此,要多用,多试,才能熟能生巧。否则越怕出错,越不敢用,越不敢用就越不了解。那到什么时候能到达熟练掌握的程度?

非常赞同
好多人,都怕用指针,这点是事实,造成的结果是程序实现和复杂和庞大

#44


引用楼主 lixiongtao24 的回复:
新手,用C写简单的单片机程序。感觉没用到比较难的C,比如指针,数组,共用体,等那些内容。难道单片机对C要求不高吗??高的还真没接触到啊

指针要视单片机架构而定,不是所有单片机都适合用指针,但是必定要学的。(在51中使用数组效率比指针高,但更多情况是指针更优)
数组,共用体,结构体等,也是一定用得着的。
单片机不是对C要求不高,应该是相反的,因为你要在有限的空间做完规定的事情,你的代码效率要很高,要了解单片机硬件本身的特点。
所以,应当学,多多地学,深入地学。搞嵌入式的只要停止学习,就改行吧,别做开发了,知识折旧太快了。

#45


多学点东西总不是坏事~~~

#46



你不看是你的损失啊!

#47


看来C的却很重要啊!还要好好学啊!还要再学一遍啊!(对我自己来说,嘿嘿)

#48


学单片机的话,会一些基本的c就行了,不用那么深刻,如果会一点汇编的话就更好了,如果有兴趣的话,还可以学一点c++,在嵌入式上是有用的

#49


楼主以后只是想搞单片机吗?
如果想往更高一层次发展的话,比如搞嵌入式ARM,指针、数组、结构体是肯定要学好的。所以现在有机会就好好学吧

#50


wjk说的是对的,如果同一个功能不用指针就用一些简单的语句能实现,就用简单的语句写,不要为了用指针而用指针,当然以后肯定会碰到要用指针的,所以学还是要学的

#1


有时间就看吧.....多看些书或许没坏处的吧?

#2


谢谢2楼  
 
前辈们啊  我们是新手。希望大虾们不吝给指点啊  关注新手啊

#3


本帖最后由 lbing7 于 2009-08-26 08:41:01 编辑
那几本书都是比较基本的吧?

不看几遍都不好意思和别人说自己了解C

#4


写程序重要的是思想,不是那些语法,语法只是为了更简洁清晰地描述思想,但是数组和结构体还是很常见的吧,养成良好的习惯,同样功能的程序,功底能差很多的

#5


指针和数组都用不到?太夸张了吧?
写程序,语法是必备之物,至少也得相当了解才行。剩下的就是思路的培养了,这个周期可就不好说了。

#6


我想应该是你还没有接触到!

#7


那几本书有时间还是看一下吧。比如指针,数组,结构体等,这些都是很基础的,继续努力

#8


我也感觉单片机上用的C比较简单,但在看ARM驱动的时候,感觉好难啊 C还是要多学点的好

#9


那几本都是比较好的书籍,况且以后还要发展的!学习没有错,比如linux系统方面的,对C要求就高了!

#10


程序大一点就需要用到了
多学是没有错的,合理分配时间吧

#11


感觉C应该全通的,就算是搞硬件,再说你这么确定就是搞硬的呢?
其实我也没这么用过高深的语法..

#12


我觉得单片机程序也应该善用数据结构中的某些思想,可以提高效率
那几本书都是经典
再推荐本《c与指针》 也不错哦 呵呵

#13


我是从测试转到单片机的,做了一年多点点,还是觉得要把C用好用精,达到很高的效率是很难的。所以是还需要充电的。

#14


单片机的C很简单

#15


单片机的c,看你怎么理解了,要想用精太难了。所有的C语言知识均可用到。

#16


与你一样的迷惑。

#17


有点迷惑

#18


C一定要学好

#19


哎,我又在重新看C了

#20


书名很经典啊,全部看完没时间啊

#21


继续学C

#22


我也是学硬件,C很重要,搞嵌入式必备的~~~~

#23


给电子工程师的建议:最好不要用指针,想想为什么JAVA里面没有指针,就应该知道商用的代码健壮性稳定性是多么重要了吧。等到了客户投诉的时候,语言已经无法表达你那时的心情了。

#24


这几本书都没看过,想多研究一下编程思想,觉得自己写出来的程序只是功能代码的堆砌,杂乱无章,谁有好的书给推荐一下哈

#25


俺开始学c的时候,也觉得指针,结构、联合体什么的没什么用。但越往后,越觉得有用。后来简直是离不开了。其实不是51的c语言不需要,而是要看怎么用,什么时候用。

#26


引用 23 楼 duojinian 的回复:
给电子工程师的建议:最好不要用指针,想想为什么JAVA里面没有指针,就应该知道商用的代码健壮性稳定性是多么重要了吧。等到了客户投诉的时候,语言已经无法表达你那时的心情了。



哥们太极端了吧,C语言区别一般语言的最大优势就是指针。我相信这也是c语言能够流行至今的最大原因了吧。什么事物都有两面性。有机会探讨一下辩证法。呵呵。

#27


而且不用指针,比如mp430,凌阳之类的单片机,你怎么操作那些个寄存器?

#28


不知道怎么回答你,一般的程序指针 结构体 枚举等等确实少,大部分接触到的是数组,但是当你接触到大程序或者想进一步深入或者想写高效程序的时候 指针还是必不可少的,单片机的程序稳定是第一要素 不是用了很多指针的程序才是好程序,你的程序稳定可靠就是好程序,再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针,等你编程达到一定量你自然会明白什么时候用指针什么时候不需要

#29


但我认为不能因为使用指针容易出错就不用。这样下去,会形成习惯,很难改正的。正确使用指针,本身并不能造成程序的不稳定,不稳定是因为错误的使用造成的。因此,要多用,多试,才能熟能生巧。否则越怕出错,越不敢用,越不敢用就越不了解。那到什么时候能到达熟练掌握的程度?

#30


“再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针”

我不觉的这句和和使用指针有什么关系。难道使用指针会使语句实现更加复杂?还是说处理问题更加麻烦?

#31


引用 30 楼 zhoushunda960 的回复:
“再说了真正的好程序时易读的,用简单的语句实现复杂的功能,不要急着用什么指针”

我不觉的这句和和使用指针有什么关系。难道使用指针会使语句实现更加复杂?还是说处理问题更加麻烦?

我不是针对指针而言,我只是说如果你用简单的语句实现了客户要求的功能,且程序稳定可靠,那何苦非要管有没有用指针 用了多少指针呢,有需要用就用,为了用指针而用指针只会自添烦恼

#32


单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结

#33


引用 32 楼 wjk864 的回复:
单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结


c语言的灵魂是什么?


而且我认为,使用c语言,必须掌握指针的使用。比如一个函数有多个返回值的情况下,不使用指针,那么该如何实现?(别告诉我使用全局变量)。
但我也不是说所有场合下使用指针就是好的,据说51中使用指针的效率就不如数组。还是要看实际的情况来定。但是用c语言,就必须正确掌握指针的使用。

#34


引用 32 楼 wjk864 的回复:
单片机上广泛应用C语言不是因为指针是C的灵魂而是C能操作硬件,故不必再指针上纠结 



c语言的灵魂是什么?

问错了。
我的意思是c是通过什么操作硬件的?不是还是指针么。

#35


问题是单片机资源相对嵌入式来说是很少的,用不到指针什么。
我也是电信工的。

#36


操作硬件是指针但是其中编译器完成了很多工作,因为数组本质上也是指针,我说的是函数指针等等不是非要的东西,我是强调能达到目的就好 程序可靠稳定就好,等编到一定程度,考虑的事情多了自然会在走不通的时候去考虑指针,你是一直在强调指针多重要多重要,完全是两码事啊 我并没有否认指针的重要性,能掌握当然是好,但是我觉得纯单片机的程序方面指针确实用的不多

#37


C只是一个工具而已,编程重要的是思想。有了思想怎么体现出来呢?就是要用C这种语言完成。这就很明显了,熟悉它了,就可以随心所欲的用它来实现思想,否则还得想想具体的语言怎么用。

对于初学者,谭浩强的很好,但肯定不够。所以不仿先把谭的内容搞熟了,然后再看《the C programming language》之类的书。

#38


我觉得咱们两个跑题了。也许是我错误理解了你的意思。有机会私下聊吧,呵呵。

#39


引用 35 楼 elvistsai 的回复:
问题是单片机资源相对嵌入式来说是很少的,用不到指针什么。
我也是电信工的。


使用指针并不会带来太大的资源消耗啊,千万别有这样的误区。

#40


 我也来学习学习

#41


wo ye lai xuexi

#42


每次有這種問題都很熱閙 可用一本書名評價

傲慢與偏見

搞技術的人都比較偏激 所以這也是難免的 不過別把樓主的問題晾在一邊了

我認為這幾本書 都要看 因為你還在觀望是不是搞硬件 一般觀望的人最後都沒有搞硬件
硬件是要看基礎的  你還在觀望就說明還沒有決心搞硬件

所以趕快抓時間學c語言吧 免得畢業時候就後悔自己c不精了 似我:-)

#43


引用 29 楼 zhoushunda960 的回复:
但我认为不能因为使用指针容易出错就不用。这样下去,会形成习惯,很难改正的。正确使用指针,本身并不能造成程序的不稳定,不稳定是因为错误的使用造成的。因此,要多用,多试,才能熟能生巧。否则越怕出错,越不敢用,越不敢用就越不了解。那到什么时候能到达熟练掌握的程度?

非常赞同
好多人,都怕用指针,这点是事实,造成的结果是程序实现和复杂和庞大

#44


引用楼主 lixiongtao24 的回复:
新手,用C写简单的单片机程序。感觉没用到比较难的C,比如指针,数组,共用体,等那些内容。难道单片机对C要求不高吗??高的还真没接触到啊

指针要视单片机架构而定,不是所有单片机都适合用指针,但是必定要学的。(在51中使用数组效率比指针高,但更多情况是指针更优)
数组,共用体,结构体等,也是一定用得着的。
单片机不是对C要求不高,应该是相反的,因为你要在有限的空间做完规定的事情,你的代码效率要很高,要了解单片机硬件本身的特点。
所以,应当学,多多地学,深入地学。搞嵌入式的只要停止学习,就改行吧,别做开发了,知识折旧太快了。

#45


多学点东西总不是坏事~~~

#46



你不看是你的损失啊!

#47


看来C的却很重要啊!还要好好学啊!还要再学一遍啊!(对我自己来说,嘿嘿)

#48


学单片机的话,会一些基本的c就行了,不用那么深刻,如果会一点汇编的话就更好了,如果有兴趣的话,还可以学一点c++,在嵌入式上是有用的

#49


楼主以后只是想搞单片机吗?
如果想往更高一层次发展的话,比如搞嵌入式ARM,指针、数组、结构体是肯定要学好的。所以现在有机会就好好学吧

#50


wjk说的是对的,如果同一个功能不用指针就用一些简单的语句能实现,就用简单的语句写,不要为了用指针而用指针,当然以后肯定会碰到要用指针的,所以学还是要学的