c语言代码 linux 关机_写给C语言初学者的话! - C/C++

本文针对C语言初学者,强调学习过程要循序渐进,建议阅读经典书籍进行深入学习,如《Unix高级环境编程》和《Linux内核情景分析》。通过实践系统调用和编写FTP服务器客户端,提升对Unix和Linux的理解。同时,推荐学习TCP/IP协议,参考《TCP/IP详细解释》。最后,提出代码编写准则,注重函数的通用性、代码简洁性和算法效率,提倡清晰的命名规范。
摘要由CSDN通过智能技术生成

f05bc71117cb525119d596ff61053aa3.png

学习C语言不要心急,要循序渐进,须知欲速则不达的道理。千万不要盲目的写大量的代码,这样做只会堆出大量的低档次代码,同时使你形成不好的代码习惯。可以先买本基础的教材来看看,使得对C语言有个初步的认识。

如果你的身边有高水平的开发人员,那么再好不过了,多多向别人请教。但是就我了解的情况来看,大部分的初学者并没有在进入IT行业后得到一个资深的软件工程师的指导,而恰恰是在入司后就被推向前线,替老板们骗取客户口袋里的钱,在这个过程中很多人都是在苦苦的堆代码,赚着可怜的薪资,尽管我也是在拿着可怜的钱。如果身边实在没有高水平的开发人员指导你,也不要灰心,现在是网络信息时代,多上论坛交流讨论,只要是同行们聚集的地方,就一定会有高水平开发人员,但是在请教别人问题的时候,千万不要刨根问底,很多事情不是一句话就说的清楚的,别人只能给你一个指引,再具体的只有靠自己多研究研究、琢磨琢磨。

有时间多学习一下英语,提高自己的英语水平,因为计算机的技术一直都是由西方向东方传递,很多国外的论坛对技术的描述是很清楚的,也是很简单的,更重要的是,你会在上面看到些在国内论坛上看不到的东西。

学习C语言有一件事情也是必须要学的,而且最好是同时学,有的朋友可能已经猜出来了,没错,是Unix。Unix和C语言可以说大家提的很多了,有Unix的地方就有C语言,同时也正是有了C语言,才有了Unix(我们还是先讨论讨论鸡生蛋还是蛋生鸡的哲学问题吧,谁拿西红柿打我),甚至有人说C语言就是为了Unix而设计的,可见Unix和C语言之间的非同寻常的关系。学习Unix现在容易多了,以前Unix都是运行在大型的服务器上的,可是现在有了Linux(按照GNU的意思,Linux就是Linux还不能叫Unix),大家可以在自己的PC上装一套Linux来学习,注意学习Linux不要拿Linux和Windows来比较,它们不可同日而语。Linux会让你知道什么是经典,永远让你在一个方向上大展宏图,Windows只会让你在别人的套子里耍上大刀,不时的还要换一个套子耍耍。下面罗列了一些我在学习Unix的一些经验:

1、学习Unix和C语言,先向大家推荐一本书《Unix高级环境编程》,这本书是学习Unix和C的经典之作,尽量把书中提到的系统调用都写个练习程序,先感性的认识一下Linux系统提供给用户的系统调用都是干什么的,怎么用。系统调用是内核提供给用户的功能用以申请内核服务,对于Linux内核的学习,从系统调用入手是个不错的办法。学习过程可以参看Linux的联机帮助,和网络上的资料。当你觉得差不多了的时候,那我给大家出一道联系题目吧:实现一个ftp服务器和客户端的功能,完全可以自己定义一些应用层的协议,只要能实现用简单的命令传输文件就可以了。

这个题目可以使你练习到TCP/IP的基本编程方法和文件操作的基本方法对于后面学习内核的文件系统会有帮助的。

43509783e14df59d289e3f06fa2830a8.png

2、当你对Unix系统有了些了解后,同时对于大部分的系统调用(关键是关于文件的系统调用,对于Linux系统的内核来说从文件系统入手相对容易一些)也有了清楚的认识后,再推荐你一本书《Linux内核情景分析》,该书是关于Linux内核的经典之作唯一美中不足的是没有关于网络子系统的详细介绍。你可以从文件系统的系统调用入手,慢慢的你就会对Linux有了一个更深入的认识。同时注意很多经典的方法和思想在Linux中的运用。你会认识到为什么Unix把所有的东西都看成文件,对什么东西操作都是对文件操作,你会慢慢体会到Unix的经典之处了。

b6a067aae70360baf58ec3d069fe4b6e.png

3、当你对Linux内核有了些了解后,你就可以找个方向来专门发展了,如果你想对眼下流行的网络编程感兴趣,那么再推荐你一本书《TCP/IP详细解释》,这本书是关于TCP/IP协议的经典之作。你会学习到TCP/IP协议栈是如果实现的,为什么,各层协议之间是如何工作的。你看完了这本书后,你就可以自己写一个dos攻击程序和sniffer了。

7b2ab7de523f78aaef7cbc883e6776c5.png

我说的简单,其实我提到的每本书至少都够你研究很长时间的,所以希望初学者别着急不骄不躁,相信只要努力过,一定会成为高手的。

在写代码的时候大家要注意养成好的代码习惯和风格还有抽象能力。

下面给出大家在写代码的时候的20字方针:

函数要小
尽量的把函数弄的通用点,代码行少点,一个函数只完成一个简单的功能,一眼就能看出来此函数有没有代码错误,每个函数都是健壮的,那么你的程序就是健壮的。

代码要少

完成一个功能的时候在逻辑清楚的情况下代码越少越好,千万不要比代码谁写的多啊。

算法要好

在完成一个功能的时候要考虑效率,目前计算机的内存很大,所以内存已经不是首要考虑的因素了,但是在某些特殊的地方效率还是很重要的。有效率高的算法,就不用效率低的算法,看看本版有一篇精华贴子是关于把一个字符窜两边的空格去掉的帖子(trim),很多人都提出了算法,但是有一个算法是最好的,效率最高,代码最少,是算法要好的最好体现

命名要清

命名要清楚,最要用汉语中的谓宾结构如set_buffsize()

文件要多

尽量把一个大的程序安功能分成多个文件,一个文件尽量不要超作1000行,这样就很清楚的知道那个文件代码是健壮的,那个文件有可能有隐患,在代码检查的时候可以有针对性的检查某几个文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值