永发信息网

请指教C语言项目学习路线?

答案:4  悬赏:70  手机版
解决时间 2021-03-02 02:23
  • 提问者网友:美人性情
  • 2021-03-01 01:29
请指教C语言项目学习路线?
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-03-01 02:47
一,UNIX下C语言的学习路线。
工具篇
  “公欲善其事,必先利其器”。编程是一门实践性很强的工作,在以后的学习或工作中,将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
  (一)操作系统
  在UNIX或Linux系统中学习C很方便,所以在开始的学习旅程前请先选择一个UNIX或Linux操作系统。
  目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
  如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
  (二)编译工具
  目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
  cc -o hello hello.c
  在unix shell环境中敲入上面的代码会将hello.c程序编译成可执行文件hello。
  make 工具如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
  大部分UNIX和Linux程序都是通过运行make来编译的。make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中统一称之为 “makefile”),并执行各种操作来编译程序。
  (三)调试工具
  最简单的调试工具:为程序添加打印语句
  在对程序的运行机制有了一定的了解后,可以实用一些工具帮助进行调试,当然得学习一下这些工具得使用,如:dbx,gdb等。
  还有一些内存工具可以帮查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等
  (四) 其他工具
  1. vi或vim
  Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
  当然在实际工作中,可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
  2.netterm
  最著名的网络终端软件之一,可以使用它方便的连接到主机系统中。
  3.Secure shell
  一个支持ssh协议得客户端工具,多数情况下用来连接linux系统。
书籍篇
  “书是人类进步得阶梯”。学习一门新的知识,当然要选择几本适合自己得书籍,下面介绍一些我自己学习C语言使用过的书籍:
  1.《C primer plus》
  推荐理由:适合作为入门书和基本函数查询得参考资料。本书最新版为第五版,以ANSI C99为标准详细介绍了C语言。
  2.《The C programming_Language》
  推荐理由:C语言之父得作品权威性毋庸置疑。虽然书籍出版时间比较老,好像也没更新,不过仍不失为经典书籍,网上有这本书得英文电子版提供下载。
  3.《C 专家编程》
  推荐理由:本书可以帮助有一定经验的C程序员成为C编程方面的专家,最关键的是本书寓教于乐,充分享受编程的乐趣。
  4.《C缺陷与陷阱》
  推荐理由:书中所揭示的知识能帮助绕过C语言自身得陷阱和缺陷,减少代码中许多常见的Bug。
  5.《unix环境高级编程》
  推荐理由:既然是UNIX环境下C编程,就不得不说说UNIX编程书籍。Stevens先生的《unix环境高级编程》是竭力推荐的,也是案头必备(如果对网络编程有兴趣的,可以学习一下Stevens先生的《UNIX网络编程》两卷,如果觉得还不过瘾,可以再看看《TCP/IP详解》三卷)。
  6.《计算机编程艺术》
  推荐理由:算法大师得呕心沥血之作。计划出版五卷书,目前好像已出版3卷。对算法有兴趣得可以研究一下。
过程篇
  1.学习C语法
  语法的学习对于一个具有编程底子的来说,就很轻松了;即使以前没有学习过其他编程语言,我相信有2个星期,也能轻松搞定。
  需要注意的是,不要太纠缠于语言的细节,比如:运算符优先级与结合性的问题等。
  2.学习C标准库
  ANSI C库把函数分为不同的组,每个组都具有与之相关的头文件。C语言标准库相对于其他语言,比如C++,Java来说是非常短小精悍的,但首先应着重对以下库进行学习:
  ctype.h:字符处理
  math.h:数学库
  stdio.h:标准I/O库
  stdlib.h:通用工具库
  string.h:字符串处理
  time.h:时间和日期
  如果想了解完成的ANSI C库,可以购买相关的书籍,这些书籍一般会详细介绍每个函数的用户和一些注意点;
  3.攻克C的难点
  C语言声明:
  C语言的声明确实觉得恐怖,比较晦涩难懂,而且声明的形式和使用的形式还类似。比如如下的声明恐怕就连很多熟悉C多年的程序员也不是一眼就能看出来的:
  char * const * (*next)();
  那么有没有一种好的记忆方法或规则来搞清楚呢,好像没有,如果有的话也不是这样折磨人了。不过可以看看《C专家编程》第三章的内容,或许会有所收获。
  也只能多学多练了,所谓熟能生巧嘛,希望这个问题不要在你的心灵上留下阴影。
  数组与指针:
  数组与指针的关系,在标准中并没有作很详细的规定,而且好多C入门的书籍在这个问题上并没有给出很详细的说明,所以会给人造成很多误解。
  对于这个问题,可以参考《C缺陷与陷阱》4.5节和《C专家编程》第4,9,10章,相信这里面的内容搞透彻,以后就不会再被这个问题搞迷惑。
  指针与内存:
  如果以后编写规模较大的程序,可能发现这个问题可能会是最大的烦恼,而且可能会是消耗最多调试时间的事项。
  C版本的问题:
  得特别小心该问题,最好不要的程序中混合使用不同版本C的特性,否则会带来很迷惑的问题。如果一定要用,最好清楚自己在做什么。
  4. UNIX环境编程
  学习了以上内容之后,就可以进行unix环境编程了。不过可能需要对操作系统理论有一点点的了解,这样学起来会比较轻松一些。
  Unix环境编程,应该着重IO和进程两大块内容。《Unix环境高级编程》中对Unix环境编程有着非常详细且深入的论述,而且书中有大量实用性例子程序,不过可能得花上几个月得时间,好好啃一啃了。
  在扎实掌握以上内容,不代表得C语言学习支路已经完成,相反,才刚刚开始。以后需要用学到得知识去解决大量不同实际问题,在不断得实践过程中,会近一步加深对C的理解。有了以上基础之后,会发现,在实践过程中需要的其他知识,会非常快速的掌握。
  二,Windows程序员的学习路线
  1.当然要熟悉下C语言了 入门可以选用潭浩强的 《C程序设计》(当然最好能读C Programming Language)特别要对其中的指针,结构体等东西一定要搞清楚了(要学好的很好至少要花费一个月时间) 为什么要从C开始呢:<1> C好学 <2> 大多数的操作系统核心部分是用C开发的 <3> C的效率高且语言成熟
  2.在1的基础之上一定要认真学习一下数据结构 对C++程序员来说良好的数据结构可以让一个程序员很轻松的完成程序设计 糟糕的数据结构可以把一个程序员累死 推荐书籍:严蔚敏的《数据结构(C语言版)》或北京大学的一本中C++版的数据结构 书中说到的每个主体在程序设计中都会用到 认真学好会对的以后的C++程序设计有太多的好处 (3个月时间)
  3.学好了2之后可以学习下《C++ PROGRAM DESIGN》这本书初步介绍了C++和如何使用C++写出Windows下的程序(要学好至少要花费3个月时间)
  4.在3的基础之上可以读一本叫《Windows 95 程序设计》(它的最新版本是Programming Windows)这是一相Windows程序设计的领域的不朽之作(3个月时间) 通过2和3的学习已经成为了一个可以设计Windows程序的程序员了 要想更好的设计Windows程序设计 一定要借助框架结构不可 为什么:框架结构可以加快我们程序设计的速度 虽然使用框架使得我们的程序的效率低了那么一点 但随着当今计算机的运算能力的提升,不会感觉到这一点点的性能损失的反而会因为你使用的框架结构而使你的程序设计加快了速度 使用框架结构才算一个真正的VC++程序员
  5.在4的基础之上可以看一些简单的MFC程序设计的书比如《Visual C++入门教程》之类的图书 这可以使你能写出一些带有通用控件的MFC程序 (1个月时间)
  6.在5的基础之上已经可以很快开发一个软件了 但不了解MFC框架运行机制是很不好的 了解MFC的运行机制可以使以后的MFC程序设计工作做的更好 推荐书籍侯杰的《深入浅出MFC》 但这本书真的不适合初学者当你有了一定的开发经验以后这本书对来说确实很好 若很熟悉Windows下的SDK程序设计并打算或已经开始使用MFC进行软件开发 那这本书对来说再好不过了 (2个月时间)
  7.在6的基础之上可以看下这本书《VC++技术内幕》由潘爱民译的 推荐看原著(3个月)
  8.在以上基础之上为了更好的使用VC++这个工具 推荐看一下《VC++6.0宝典》(3个月) 从开发工具的角度讲这本书写的很好
  9.为了更好的工作可以参考一下VC++程序设计百例
  10.之后可以看一下《Windows核心编程》 这本书很好的讲解了Windows的编程 对你写系统程序很有好处的 推荐看原版
  11.只了解其形不算真正的了解 之后还要认真的读一下Windows的内核源码 相信WRK 很容易找到的 可以配合《深入解析Windows操作系统》《Windows内核原理与实现》和《Windows内核情景分析》
  12.其它一些东东《COM原理》(潘爱民) OpenGL D3D VC的数据库编程 图形图像 音视频处理和网络都要有所了解和会使用
  13.要做到一个好的程序员一定要对驱动程序有所了解所以写一个文件驱动之类的东东是很有必要的
  14.经过以上各步的学习完全成为一个优秀的Windows程序员了(前提是每一步要学好)
  15.漏了一些重要的东东 编译原理 汇编及 组成原理 和设计模式等也是很重要的东东 只有学好了这些才能明白语言为什么要这样组织才能高效。
全部回答
  • 1楼网友:一秋
  • 2021-03-01 05:45
可以去网上接点儿活,比如威客什么的,看看自己是否达到别人的要求。
  • 2楼网友:迷人又混蛋
  • 2021-03-01 04:21
C只是一个工具,与其他语言一样是一种沟通方式,
比方说,你会说英语,但你见到一个老外不知道和人说什么,相当于你知道C的语法但不知道做什么项目。人家老外是一个体育迷, 你想跟人家聊世界杯, 但你从来没看过球,也没法聊。这就相当于你要做某个领域就要先了解该领域的知识。
再比如你要做一个蓝牙耳机的应用程序,首先要了解嵌入式编程,了解蓝牙协议。你要想在windows上做一个小应用软件,那就要学会windows 提供的api。你想在iphone手机上做一个小应用,你就要了解objective C 还有布局等等的基础知识。追问我就是想做个window小应用程序呀,比如做个计算器,除去代码部分,请问其他步骤是怎样的呢?追答C语言无非是数据结构+算法, 计算器实现源代码在网上就能找到,多读读代码自己就知道怎么写了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯