大家好,今天小编关注到一个比较有意思的话题,就是关于学linux需要学习c语言吗的,于是小编就整理了3个相关介绍学Linux需要学习c语言吗的解答,让我们一起看看吧。
为什么linux的内核用c不用c++呢?
这个有几个层次的原因。
一是,C语言比C++精益,语言核心很小,C++的运行时库和特性实现起来要比C的复杂的多,比如实现动态绑定的RTTI就会有开销。而操作系统核心的一个主要设计概念就是要控制内存和速度的开销,C++显然没有C语言更合适。
二是,Linux之父Linus,他自己就不喜欢C++语言,原因有很多也包括上面说的第一点,你可以在网上查到“Linus 炮轰 C++”这篇文章。
要想精通C语言,必须先学习汇编吗?
不一定要懂汇编,至少不需要先学习汇编。
汇编并不难,每个芯片平台定义的汇编指令千差万别。 因项目需要,临时去翻指令理解也来得及,没有必要去强记。
要学的东西太多,在汇编上花费太多精力没有必要。
1、要精通c语言,不需要学习汇编;C语言其实是很简单的,很多时候是windows下的ide把c语言开发搞复杂了,可以参考我的头条号里面的几个介绍c语言的文章。
2、建议在linux下用gcc学习c语言,c语言是一门系统级语言,只要掌握了指针,就可以很灵活的控制内存和程序流程;
3、c语言的很多库都是通过指针对外提供api;
4、很多嵌入式芯片都有提供c语言的库封装;多线程库在不同的平台和芯片库里面有不同的实现方式;记得以前做arduino的时候,多线程要自己控制中断;而lpc2368的armv7架构的多线程是用mailbox方式实现。只要掌握了linux平台的gcc的c语言,就能很轻松的进行不同芯片的嵌入式开发。
5、原来开发lpc2368的bootloader的时候,官方的例子是汇编,而我直接用c语言的指针实现了同样的功能。
不是必须的,但有帮助。程序经过编译基本上就是汇编语言的形态了。严格说,是二进制数据,汇编是把二进制的指令用词语表现出来而已。如果理解了汇编你就能轻松理解C的指针是个什么鬼,它加来加去的到底是在干什么。为什么要编译,什么是链接。为什么C要有主函数,为什么变量要定义类型,函数是怎么回事。
完全不需要!请把精力放在算法实现,模型建立,API调用,人机界面,网络与通信等有用的地方。CPU发展很快,自己写那几句汇编比高明不了多少。做应用软件开发,根本不需要汇编。你要是打算做操作系统等系统软件,那倒是真得结合目标CPU好好研究汇编。
虽然说汇编是一门独立的语言,C也是一门独立的语言,它们看上去并没有什么联系,但是学习汇编可以帮助我们分析C语言程序的设计原理。要想精通C语言,必须先学习汇编才是正确的学习顺序。
举例:【“Hello World!”程序使用汇编表现】
使用“Hello World!”程序介绍,如图3-5-1所示。
图3-5-1中,我们只看到了C语言代码,并没有看到汇编,我们该怎么查看呢?在Visual C++开发工具中,反汇编窗口,需要下断点、按F7编译、按F5调试运行才能[_a***_]到反汇编窗口。该如何下断点哪?选中“int main(void)”这一行按F9,会在这一行代码前出现一个红色的圆点,说明已经断下断点,看图3-5-2所示。【注:按F9下断点只是在Visual C++开发工具中使用】
按F9下断点后,我们接着按F7,让程序编译,程序通过编译后再按F5调试,会出现如图3-5-3所示。
出现图3-5-3的界面之后,我们点击鼠标左键,出现如图3-5-4界面。
想学c语言和linux运维,先学哪个,哪个前景更好些?
这两个没有先后的关系吧,c语言学习起来难度大一些,当然我并不是局限于c语言就是大学的那些课程,需要有更深层次的学习,这也决定了c语言如果学好了也是比较吃香的,linux运维是另一个方向,这两个不冲突,学习起来比c要简单些直观些!
到此,以上就是小编对于学linux需要学习c语言吗的问题就介绍到这了,希望介绍关于学linux需要学习c语言吗的3点解答对大家有用。