C语言主要做哪些方面的开发---一个来自“IT技术学习”微信群的问题及答复

最近,在“IT技术学习”微信群中,有同学问了这样一个问题:C语言主要做哪些方面的开发?在这篇文章中,我想结合自身的经验,对这个问题进行下解答。
C语言是计算机及其相关专业(如通信、电子、数学等)学生大一时的必修课程,也是很多人所学的第一门编程语言。要想了解C语言主要做的开发工作有哪些,我们先来简单回顾下C语言的产生历程。
美国的贝尔实验室在IT领域占有非常重要的地位,从这里面走出来的发明创造不计其数,C语言就是其中之一。话说在1970年,贝尔实验室的一个名叫 Ken Thompson的研究员设计出了一种很接近硬件的编程语言,取名B语言,并用该语言写出了世界上第一个UNIX操作系统。注意,B语言的特点是接近硬件。一年之后,另一位叫做Dennis M.Ritchie的研究员看到UNIX这玩意儿很有前途,便加入了Thompson的开发项目。然而,Ritchie并不是一位只会用B语言编程的“码农”,他对B语言进行了改进,并于1972年设计出了C语言,他也因此被誉为“C语言之父”。
C语言被发明出来之后,Ritchie和Thompson用之对UNIX进行了重写。直到现在,虽然C语言经过了多次标准的制定和修改,但基础都是Ritchie所设计的最初的那版C语言。而C语言是对B语言的改进,那么自然而然地继承了B语言的“基因”:接近硬件。
那么,这种“接近硬件”的编程语言可以做哪些方面的开发呢?由于任何软件都要运行在特定的硬件之上,我倾向于将当前的系统表示为如下图所示的四个层次。

对于软件开发工程师来说,关注更多的是上面的三个层次:操作系统层、中间层和用户层。
(1)操作系统层:包括Windows、Linux、iOS、Android等。它们的主要实现语言都是C语言,这和C语言“接近硬件”的特性是有关的。
(2)中间层:该层在操作系统层和用户层之间充当了一个桥梁的作用,它将很多对于操作系统的操作封装成了API,供上层(用户层)调用。既然操作系统几乎都是用C语言实现的,那么如果要使用其中的某些功能,C语言就是最佳的实现语言。因此,在中间层的开发中,C语言也是主流的语言。
(3)用户层:该层是直接与用户进行消息交互的层次,也是用户能够直接感受到的层次,如WEB界面、客户端软件操作界面等。目前看来,该层的主流编程语言是Java,这也与Java自身的特点有关。
现在来总结一下,C语言可以用于操作系统的开发或与操作系统很靠近的中间层的开发。具体到的软件种类就相当的多了,如本人之前开发过的支付业务接口和现在正在开发的通信接口机。
任何一门语言的产生,都有其特定的背景,也有其具体适用的场合,因此,并没有孰优孰劣之分,最主要看学习这门语言的人掌握到了什么程度。在大家学习的过程中,我的建议是可以学习不同的几门编程语言,但一定要有一到两门比较熟练或精通。
最后,欢迎更多的对IT技术比较感兴趣的朋友加入我们这个“IT技术学习”微信群,也请大家关注本人即将要出版的新书《C程序员:从校园到职场》。



本人微信公众号:zhouzxi,请扫描以下二维码:

时间: 2024-08-25 18:32:03

C语言主要做哪些方面的开发---一个来自“IT技术学习”微信群的问题及答复的相关文章

C语言及程序设计进阶例程-14 开发一个电子词典

贺老师教学链接  C语言及程序设计进阶 本课讲解 开发一个电子词典(下载词库点击打开链接) #include <stdio.h> #include<string.h> #include<stdlib.h> //定义词条类 typedef struct { char english[20]; char chinese[30]; char word_class[10]; } Word; Word words[8000]; //将词典数组设置成全局的结构体数组 int wor

如何学习微信公众平台的开发?

如何学习微信公众平台的开发? 在整个移动互联网的开发技术中,微信公众号的开发几乎是成本最低,传播最快,影响最广的,你几乎不需要再添加任何配置,就可以开始. 个人可以申请公众号,需要高级权限可以用测试号,免费.不再需要再买专用电脑,不需要再买付费开发工具,有个手机,有台电脑就可以开始. 使用我们的方案,连域名也不用买,也没有麻烦的备案过程.前期服务器也是免费的,后面根据需要再付少量的费用,最低3元一个月. 以一个天气预报开发为例,开发完成后,只需要让用户扫描关注回复城市名就能体验功能,无需下载安装

solaris操作系统做c应用程序开发步骤_C 语言

1.开发C程序的必要工具和设置 A,Solaris下的开发工具 在solaris下开发C应用程序,缺省开发环境是Sun Studio.目前Sun Studio 11是Sun公司最新的C/C++/Fortran开发工具,这个工具已经安装在Unix体验中心的服务器上,我们可以直接使用.在Sun Studio 中,其中C程序的编译工具名称为cc.还有的就是make这个命令,make命令是Solaris安装后就自带了,不需要我们另外安装. B,设置环境变量 在solaris下开发C应用程序,需要把编译器

网站-用JAVA语言如何做一个服务器

问题描述 用JAVA语言如何做一个服务器 我要做一个网站,接收终端机发来的信息并且处理,再发数据给终端机,这样该怎么做 解决方案 java开发网站后台服务器端,看你的规模了. 如果网页简单你就直接使用这个Servlet进行开发就可以了. 很方便就可以实现了. 如果比较复杂,那你就考虑使用框架吧. 使用SSH或者是SSI框架组合进行开发. 假定你已经想好了你的网站的访问Url,业务处理方法,以及你存储数据的数据库的设计都OK,制作流程大致如下 (如果没有,你先从纸面分析设计下你的系统都有什么功能(

为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?  今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用

想做高性能web应用开发,求大神指导

问题描述 本人大学生,学习javaweb开发,掌握了Struts.springmvc.springsecurity.spring核心和hibernate等开发框架.并且掌握了一些web前段开发技术.目前想着手学习开发高性能的web应用,有一下问题请教各位大神:1.10万并发量以下的web应用,要优化性能,主要应该专注哪方面?钻研java语言机制,提高代码质量?钻研数据库,优化数据库访问?还是专注http.tcp方面?2.听老师说,nginx对静态资源访问的性能提升明显.我想知道,对于没有做高性能

微信公众平台-做微信公众号开发要学哪些技术?会使用哪些工具?

问题描述 做微信公众号开发要学哪些技术?会使用哪些工具? 我在网上看了一些帖子,可是依然有些糊涂!想请教专业人士:假如我想做一个有业务处理逻辑的公众服务号,我有sae云服务器,会一点简单的web语言,然后怎么做? 解决方案 现在微信公共平台开发多少是基于PHP与java的,想要学好微信开发必须熟悉微信公共平台各类API的调用.建议你先看看微信公共平台的API文档,然后按照Demo做几个.

需要开发一个可以分析数据生成图表的软件,请问应该用什么平台和语言开发好?

问题描述 需要开发一个可以分析数据生成图表的软件,请问应该用什么平台和语言开发好? 请问应该用什么平台和语言开发好?需要看看哪些东西学习一下.希望大神指点一下,菜鸟一只,想好好学学.就是spss那种的软件,当然比那个要简单很多了. 解决方案 可以用C C++ Java Delphi PowerBuilder VB C# 等语言开发. 解决方案二: 用linq sql分析数据,用mschart devexpress做图,用gridview做表. 解决方案三: C#开发用devexpress控件可以

c语言-C语言开发一个活动管理程序

问题描述 C语言开发一个活动管理程序 对C没有很熟悉,初学者,希望各位专业大神能帮忙解救一下,我真心感谢你! 解决方案 上淘宝找人做吧,或者随便一个外包网站,这种活儿很多人接 解决方案二: 先想一下大概思路,然后设计一下数据结构,然后再开始写代码