c语言如何进阶?需不需要学操作系统和编译原理

问题描述

c语言如何进阶?需不需要学操作系统和编译原理
学了一段时间的c语言,基本知识都掌握了,想深入学习一下c语言,不知道需不需要先学习一下操作系统方面的知识或者编译原理,请高手指点一下

解决方案

C语言是一种系统编程语言,有人称它叫做“高级语言中的低级语言”,由于它接近硬件,语法相对简单,并且自身抽象程度很差,不适合编写应用程序,而很适合编写系统软件,比如微控制器、嵌入式系统、驱动程序等等。

这恰好是操作系统和编译原理的学习中最适合的语言。C语言接近硬件,接近操作系统,天然地,和操作系统两者密不可分,学好操作系统有利于你更好地理解C语言。

初学编译原理,你当然希望有一种简单的语言作为你学习的目标,C语言就很合适,它的代码生成没有太复杂的东西,而且可以参考的C语言编译器实现版本又有很多。C语言本身也被用来写编译器,这些都使得它和编译原理密不可分。

最好在这两者之外,再学习下计算机组成原理,对于计算机硬件有个大概了解。

解决方案二:

可以直接学习Linux编程,最好找本书,操作系统方面的知识在你写程序的过程中会接触到一些,现在不用专门学习,编译原理也是

解决方案三:

学点计算机组成原理,知道什么字节对其,调度多线程等等的知识是挺好的

解决方案四:

同学,推荐学习linux编程

解决方案五:

操作系统肯定要学,因为你的程序都跑在操作系统上,Linux,Windows都是比较优秀的OS,
编译原理可以加深你对程序实现的理解

解决方案六:

对于初学者不建议学习这么多理论,建议选一个编译工具,搭建环境进行实践,让学习到的理论与实践印证下,再进行其他方面的拓展。

解决方案七:

学操作系统和编译原理是肯定的了。

时间: 2024-08-03 15:24:20

c语言如何进阶?需不需要学操作系统和编译原理的相关文章

《C语言程序设计进阶教程》一1.1 编译

第1章 程序的执行 1.1 编译 本文讲的是C语言程序设计进阶教程一1.1 编译,本章讲述怎样在Linux下编写.编译和执行程序.我们使用Linux终端并解释你需要键入的命令.为什么要学习怎样使用终端呢?首先,此终端对于使用计算机工作而言是一个灵活且方便的界面.意识到这一点可能需要一些经验的积累,但是学习怎样使用此终端将会提高你的生产力.其次,许多云计算或者Web服务提供终端访问.这是提供计算资源的一个很自然的方法,尤其是当涉及在多台计算机上工作的时候(像在数据中心一样).当仅在一台计算机上工作

学openstack需不需要学python?

问题描述 听说学openstack很难的,需不需要学python语言?需要哪些基础? 解决方案 解决方案二:学C吧一通百通

《C语言程序设计进阶教程》一导读

前 言 为什么要写这本书 本文讲的是C语言程序设计进阶教程一导读,市面上有成百上千种关于编程的书籍,其中有很多都是关于C语言编程的,那么为什么我还要写这本书呢?为什么建议你花时间读它呢?这本书跟其他书有什么不同呢?跟很多作者一样,我写这本书是因为我觉得有必要,觉得这本书中的方法比其他书中的更好. 我将现在已有的关于编程的书分为两类:入门和进阶.入门类书是给初学者写的,一般都假设读者没有编程基础,所以主要是介绍基本的概念.通常以"Hello World!"程序开始,也就是将"H

C语言顺序表基本操作,刚学数据结构还不懂怎么操作?求助!!

问题描述 C语言顺序表基本操作,刚学数据结构还不懂怎么操作?求助!! 1.建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来. 2.用函数实现在顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素. 3.用函数实现顺序表的插入和删除操作.由用户输入待插入元素及插入位置,将完成插入后的顺序表输出:由用户输入删除第几个元素,将完成删除后的顺序表输出. 解决方案 http://zhidao.baidu.com/link?url=n-XCi

《C语言程序设计进阶教程》一2.3.2 函数实参

2.3.2 函数实参 本文讲的是C语言程序设计进阶教程一2.3.2 函数实参,为了理解函数实参,我们必须对目前见到的十分简单的例子进行详细叙述.首先,大多数函数引入输入实参,具有返回值.<韦氏词典>将argument(实参)定义为"可以决定一个函数的值的自变量中的一个".对于一个数学函数,例如f(x.y.z),变量x.y.z就是函数f的实参.在C程序中,函数有相似的语法.考虑下面的例子: 输入a.b.c是f1的实参.当f1被调用的时候,f2必须提供3个实参,而且这些信息被压

《C语言程序设计进阶教程》一1.2 重定向输出

1.2 重定向输出 本文讲的是C语言程序设计进阶教程一1.2 重定向输出,printf函数可能是人们写C程序时最先了解的几个函数之一.著名的"Hello World!"程序经常被用作给初学者的例子.在这个计算机程序中,文本被打印至终端.然而在一些场合中,从程序中重定向信息并将其保存至一个文件中是很有用的.下面是几个可能用到的情境:一个程序打印得过多过快,电脑屏幕不能显示出打印的所有内容.你不想在程序运行时等待着,相反,你想稍后再去看上面的信息.有时,检查程序再次运行时的输出是否与之前相

《C语言程序设计进阶教程》一3.2 常见错误

3.2 常见错误 本文讲的是C语言程序设计进阶教程一3.2 常见错误,这里是一系列我所见过我的学生编写程序中的常见错误(有时甚至是我自己也会犯的).很多学生向我保证他们再也不会犯这些错误.事实上是人们还是会犯这些错误,而且比他们想象中的要更经常.这一节只考虑编程错误,而非设计错误.设计上的错误需要一本另外的关于设计软件方面的书来讲述. 原文标题:C语言程序设计进阶教程一3.2 常见错误

《C语言程序设计进阶教程》一2.5 习题

2.5 习题 本文讲的是C语言程序设计进阶教程一2.5 习题,本书有两种类型的作业:习题和编程作业.习题是不需要编写程序的问题--它们是"在纸上写"的问题.编程作业,显然是需要在电脑上完成的. 理解栈内存对于程序员而言是最必需的技能之一.如果你想要理解C程序(和许多其他编程语言),那么对栈内存的扎实理解是必要的. 原文标题:C语言程序设计进阶教程一2.5 习题

《C语言程序设计进阶教程》一3.2.2 错误数组下标

3.2.2 错误数组下标 本文讲的是C语言程序设计进阶教程一3.2.2 错误数组下标,对于一个有n个元素的数组,有效的下标是0,1,2, -, n-1,而n是一个无效的下标.当一个程序有着错误的下标时,这个程序就可能在一些情况下工作,而在其他的情况下崩溃.你不会想去编写一个靠运气工作的程序. 3.2.3 错误数据类型 你能骑自行车.你也可以用钢笔写字.你却不能骑钢笔,也不能用自行车写字.在程序中,类型指定功能.你需要理解并正确地使用类型.编程语言的趋势是让数据类型更有限制性,防止程序员犯意外的错