咱们都知道C言语是整个嵌入式开发学习中一门重要的言语,所以学好C言语也是嵌入式开发学习中重要环节。究竟怎样学习C言语?C言语学习的诀窍是什么?今日本为就为咱们揭开这个谜底。学习C言语的诀窍:便是“一字真言,两种情绪,三个结构,四项留意”。
一、一字真言
学好C言语,一字真言,那便是“编”。
(一)编。
学习C言语,乃至学习全部的言语,都考究一个着手–不是着手打人,而是着手编程序。你有必要经过编写程序来了解常识、了解常识。假使只学不编,只看他人的程序,自己不着手写,是不能从入门到通晓的。要知道,在计算机界,只说不练的人很欠揍。试想一下,你在哪里辛辛苦苦的编程序,他却站在一边,如老板相同滔滔不绝,对你提出这项定见,那项思路,乃至畅谈自己编程将会怎样怎样,如同很牛皮的姿态,但便是不编一行代码。估量咱们碰上如此之人,只会一个动作,那便是点击“踩”。
一个“编”字就能够学好C言语吗?真的如此简略吗?不是的,仅仅“编”是不行的,你还需求“我编”。
(二)我编。
请留意修辞,“我”编!这个“我”其实便是只“你”,也便是学习C言语的人。
咱们在学习C言语时,要多编写程序,比方学习链表时,要自己编写链表程序,乃至自己编写俄罗斯方块等游戏程序来操练。不过有个前提条件,你有必要自己编写这些全部的程序才有作用,假设你从网络上下载了某某源代码,或许复制了同学的程序,任何大吹牛皮的说是自己编写的,那么我也只能大吹牛皮的告知你,这样做出了养成偷盗的习气外,没有任何作用!
有同学会问,那么“亲身”编程序总能够通晓C言语了吧,其实还差一点点,仅仅“编”是不行的,仅仅“我编”还不足以通晓,为了到达C言语的最高峰,你还需求“我编编编”。
(三)我编编编。
“编”字重复三次,这儿的“三”,代表多,意思是你有必要多多的编写程序。亲身编写10行代码等于没有编,亲身编写1000行代码是远远不行的,亲身编写1万行代码还敷衍了事,亲身编写10万行代码,你肯定成为程序员中的战斗员。
乍一看10万行代码,估量有同学会先直挺挺的躺下去,然后又眼球一转站了起来–他们想起了坏主意。“不便是10万行吗,简略!现在的编程东西都有代码生成功用,随便在VC顶用鼠标拖曳几下,搞一个MFC窗口程序,体系就主动生成了几百行的代码。在搞几个三方控件,几千行代码就生成了!”
再次声明,“编编编”是有前缀的,那便是“我”,也便是学习者自己,运用代码主动生成东西发生的代码莫非是“学习者”编写的?
要不上有方针,下有对策,“不必代码生成器,那么就抄,照着输入代码就行!”哎,人不能无耻到那种境地!这十万行代码要“你”亲身完结,亲身在脑海中发芽、生根,再亲身逐行输入。这又不是什么政绩使命,也不是什么形象工程,诈骗他人终究只能是掩耳盗铃。
二、两种情绪
一般人提起C言语,常常一个字如影随形涌上心头,那便是“难”!惧怕啊,C言语真是太恐惧了,传说中的指针真是太尖利了,一不留神就把体系划破,搞出几个死机重启都是太正常不过了。
其实没有必要这么忧虑,本朝太祖从前说过:“在战略上轻视敌人,在战术上注重敌人。”
(一)战略上轻视C言语
其实,C言语也便是一个一般的言语罢了,别把它幻想的太难!与Java比较,C言语也仅仅程序杂乱一点、代码冗长一点、库函数少上一点、三方控件难学一点,编译东西粗陋一点、指针费事一点,其他的都差不了多少,程序规划思维总是相同、程序构建总是相同的、程序语法总是相似的、程序逻辑总是差不多的。
没有必要对C言语闻风丧胆,把他当成一门一般的言语就行了。要知道,就算C言语再难,总比汇编言语简略把握、比机器言语简略回忆、比英语简略把握。所以要自傲!全部C言语都是纸老虎。
(二)战术上注重C言语
尽管咱们在C言语面前坚持了昂扬的斗志,尽管咱们临危不惧。可是真实在学习得进程中,仍是有必要坚持狂妄自大的情绪,骄傲自大,不要因为搞了一两个俄罗斯方块游戏程序就洋洋自得,以为老子天下第一,乃至只遍了10行代码,就到CSDN博客中处处谩骂,处处“踩”人的帖子。要知道,“雄关漫道真如铁,当今跨步从头越”,不管你学了多少,只需还没有走上作业岗位,那么万里长征就仅仅才迈出了第一步,还有很长的路途等待着你。
三、三个结构
学习C言语,“编”不是问题,问题是“编什么”、“怎样编”、“编多深”,下面就来处理这些问题。
(一)静心不静
1、静心。
学习的进程,是一个绵长而单调的进程,学习者有必要要有吃苦耐劳的预备,静下心来,从咱们的视觉中消失,饱尝一个长期的编程学生进程。吃尽苦中苦,方成人上人!等你从头回到咱们的视界时,你会有一个蜕变,那时全部的苦楚都将化为甜美。
来个IT版的比方。在悠远的大洋彼岸,在微软的IE横行之前,在互联网刚刚起步之时,有一个叫做“网景”的浏览器占有了商场99%的比例,网景公司在其时的美国更是比易中天还如日中天。可是,咱们知道这个“网景”浏览器是谁开发的吗?是一个学生,他在大学中不显山不漏水,其他同学每天考虑着泡MM,他却每天除了上课便是泡机房,是上也泡,下也泡,总算泡出了浏览器。
所以说,静下心来,不管其他同学在多么振奋的展现他们的某某体系,他们的某某网站,已然你挑选了学习C言语,那么以韦青青青为典范吧,总有一天,你会一举成名天下知的。
2、不静
学习C言语,有必要不能够烦躁,有必要一步一个脚印,此乃静心。可是,学习C言语,也不能够过分缄默沉静,一个人呆在机房里凭空捏造妄想着创造出某个绝世程序然后成为我国的比尔盖茨是不行能的。
学习靠自己,所以大部分时分咱们需求自己考虑、闭关修炼。可是一个人的力气终究是有限的,许多时分咱们需求凭借外力。比方不明白的当地咨询教师,不明白的当地能够与同学相互评论等等,都是能够的。
有许多同学,学习时碰上困难,遇上了费事,所以自己冥思苦索–这是对的–仍是得不到成果,所以成心逃避漠不关心–这是掩耳盗铃。有同学说,那是因为无人可问,问教师,形似大学教师总是神龙见头不见尾,底子找不到;问网络大虾,网络大虾们常常不在线,就算在线,面临洋洋洒洒的留言也视若无睹,更别提回复了;问同学,别提了太丢面子!咱们同学罢了,为什么要问他,问他岂不是阐明自己低人一等吗,不问!
其实,大学之中同学之间相互评论是最可行的一种做法,究竟一个王重阳没有时刻点拨全真七子,网络大虾比投名状中的兄弟还不牢靠,所以除了自己多考虑便是同学之间多评论了。不要忧虑问问题会低人一等,老祖宗有一句话叫做“虚怀若谷”,尽管你的水平比我低上一点点,可是,我不觉得向不如自己的问发问是羞耻。多好的阿Q精力啊,用这点!
只要静心,才能够更好的学到常识;只要不静心,才能够更快的学到常识。
(二)深化不深
1、深化
学好C言语,就必定不能浮躁,要深化的学习常识。
其实,以上的话就极端浮躁,极端不深化。谁不知道要深化学习啊,可是你的告知咱们,究竟什么内容归于深化学习的内容。
其实,浮躁便是学习常识便是浮于外表,没有深化了解专业常识。体现在编程上便是只想编写一些所谓美丽的、能够拿得出手的程序,而关于一些底层的支撑程序置之脑后。
有的同学喜爱编写一些美丽的程序,比方规划美丽的网页,运用某某东西开发某某‘大型’体系等等,当然这都是人之常情。正如鲁迅先生所说,文章写出来总是期望具有更多的读者,除非是写给恋人的。程序编出来,总是期望具有更多用户,除非是专门为爱人开发的。但问题是,只编写这类程序是不行的,是有缺点的。
这些所谓的程序,往往只需求对常识运用,并不需求追根问底研讨常识的自身,乃至有许多加入了许多适当专业的内容,并不合适于初学者学习。比方VC中的 MFC便是一个典型的误导初学者的东西。运用MFC能够很便利的编写出DIAG界面程序或许视图文档程序,从外表上看风景无限,但对初学者却祸患无量!假设运用VC学习C++,大部分时刻将用于音讯的处理,控件的处理,还要阅览很多的视图文档结构类库阐明,这些操作将消耗了你很多的时刻,因小失大。并且 VC++的大部分编程是在某些方位刺进代码,至于C++部分体系主动完成了,留给你的是纯C言语操作。同学请留意,你学习的是C++,不是VC类库,也不是VC操作!
比方运用数据结构,就有必要自己编写有关链表、行列和栈等内容,你是在学习,又不是作业,当然得用自己编写的东西呢。
又比方说C言语的内存分配函数,便是那个malloc和free.一般人直接调用就行了,可是计算机专业的学生不应该停步于此,而应该考虑这两个函数的体系完成办法,并且编程序模仿内存分配和开释。规划这样的程序,不光能够增强着手才能,还能够加深对计算机常识的了解,一举多得,何乐而不为。
2、不深
深化学习C言语是极端应该的,可是咱们也有必要有所偏重,不能胡子眉毛一把抓,全部的东西通通深化,具体体现在两个方面:
其一、一些常识规模不行过于深化。
有一些常识,归于偏远的内容,既不是根底,日后作业中也很难碰上,并且还极度困难,像这样的东西,了解即可,彻底没有必要深化。比方说某同学心血来潮,要编写一个美丽的输入法软件,所以苦心学习了有关输入法的全部常识,还试图气死清华紫光,饿死搜狗拼音,所以细心研讨输入法的犄角角落。其实这些常识均适当偏远,了解即可,彻底没有必要打破沙锅问究竟。
其二、一些界面或许不必要的功用不行过于深化。
咱们编写的程序,往往随同很多的交互式界面规划。现实上,编程有个二八准则,即编写80%的中心内容将消耗你20%的时刻,而其他20%的功用将消耗你 80%的时刻。实际上,作为C言语学习,深化编写好那80%的中心功用就能够了,消耗80%的时刻去深化完善那些20%的功用,因小失大!
所以,操练用的程序,最好是一些根底的、底层的完成,不要有太多花俏的图画和交互式操作。当然也能够规划一些简略的具有图形界面的小游戏,但此刻你应该将精力更多注重于游戏自身的规划,而不是游戏的画面风格和动画作用上。
学习C言语,有所为有所不为。
(三)单调不枯
1、单调
学海无涯苦作舟,学习当然是一个单调的进程。用言语规划程序,外表上程序漂美丽亮风景无限,其实风景的背面是黑漆漆的屏幕和冗长的代码。程序员是把美丽献给他人,把单调留给自己的工作。
所以,学习C言语,就有必要多规划一些单调的、无趣的实例。当flash程序员在展现图片时,C言语程序员要去学习空泛的0和1的图片格式;当Java程序员规划网站时,C程序员要去了解笼统的HTTP协议;当。net程序员运用目标保管时,C程序员总是要考虑内存的申请与开释;当C++程序员在欢喜的运用 STL库时,C程序员有必要自己建立全部的数据结构。
在C言语的学习路上,肯定没有学习其他言语那么多鲜花,这是每一个C言语爱好者有必要承受的现实。
2、不枯
其实,人都是需求动力的,凭什么其他程序员能够经过美丽的程序享用MM的敬重和同学的赞赏,而C言语程序员就只能在0和1的国际中与电脑交流。其实,学习C言语的进程彻底能够是高兴的。
咱们在根底内容了解的差不多时,彻底能够按部就班规划一些简略的爱好游戏程序,从贪吃蛇到俄罗斯方块,从搞怪碰碰球到连连看,从扫雷到雷电,乃至还能够是植物大战僵尸和愤恨的小鸟,编写一些在界面上简化的爱好游戏程序来,赞同能够激起自己的爱好并获取教师、同学尤其是MM的阵阵掌声。
单调,是因为学习并非游玩。不枯,是因为要像游玩相同的学习。
四、四项留意
(一)错误观点:C言语低人一等
因为C言语常常运用于一些服务器程序,没有美丽的界面,在一些同学的心目中,C言语程序员就成了IT民工的代名词。相似于煤矿工人,整天生活在地底下。而那些Java程序员,.net程序员则成了白领丽人。
(二)错误观点:C言语略胜一筹
与第一种状况相反,一部分同学则以为C言语才是言语正统。俗话说:真实的程序员用C,聪明的程序员用delphi.那么其他的言语通通是神马牌浮云,何足挂齿。其他的程序员,不管聪明也好,愚笨也罢,都是盗版水货。
(三)错误观点:C言语是忠贞情人。
弱水三千,只取一瓢。有人在爱情上的忠贞,有人去在言语上忠贞,有人如斯内普般终身只爱一个女性,有人欲仿效之,终身只运用一种言语。
正如人生而平等相同,其实,言语也没有凹凸贵贱之分,只要合适于不合适之分。Java合适做WEB开发,C言语合适服务器,C++合适做游戏,等等。真实的程序员,不是只运用C言语的人,而是到什么山唱什么歌。任何言语、任何数据库、任何操作体系对他来说都仅仅东西,呼之能来、来之能战、战之能胜、挥之能去。当JQuery便利时,我不直接用JavaScript;当速度优先时,我不必Java;当安稳优先时,我不必Windows.总归,倚天剑也好,屠龙刀也罢,通通是东西,为我所用,为我所役使。
(四)光说不练假把式
学习C言语的真言是“编”,可是也有同学会辩驳,“这么简略的程序,也需求我亲身编写吗?”、“这个程序我看一眼就知道怎样做了”、“越过这个程序,直接编写后边的程序”、“不要把天才糟蹋在这种小程序上”等等之类的言辞不绝于耳。
上面其实便是典型的“眼高手低”。
咱们在高中学习数学经常常有这样的领会:一看就会,一做就错。计算机编程其实也是相同,咋一看简简略单,谁都能够说出个丁三卯四来,可是真实上一实战,手也抖了,腰也弯了,脑袋也浆糊了。要么半响写不出一行代码,要么编译便是报错,怎样查也查不出原因之地点。
所以,这儿规劝各位“高手”,实践出高手。是骡子是马,拉出来溜溜。请那些所谓的“高手”先试着做一两个作业,真实称心如意趁热打铁才才是真实的高手,不然,老老实实的地毯式编程吧。好了,以上便是个人总结的关于学习C言语的诀窍,期望对正在C言语的同学有所协助!